Concatenar string em delphi7
Galera sou novo aqui e preciso da ajuda de vocês, bem estou desenvolvendo um programa em delphi7+mysql 5.0 e tenho um form com mais 20 edits quando vou dar um insert no banco de dados sql diz que a string e maior que 255 caracteres,queria saber se da para comcatenar
with DataModule1.tbl_membros do
begin
Close;
SQL.Clear;
sql.add(''insert into TBLmembros(nome_mbr,data_mbr,end_mbr,numero_mbr,cep_mbr,'');
sql.add(''bairro_mbr,cidade_mbr,estado_mbr,natural_mbr,tel_mbr,cel_mbr,cpf_mbr,'');
sql.add(''rg_mbr,filiacao_pai_mbr,filiacao_mae_mbr,escolaridade_mbr,estado_civ_mbr,'');
sql.add(''nome_conju_mbr,batisado_mbr,cargo_mbr,dt_emissao_mbr,batismo_mbr,email_mbr,'');
sql.add(''values(''+edt_nome.text+'',''+edt_data.text+'',''+edt_endereco.text+'',''+edt_numero.text+'',''+edt_cep.text+'')'');
sql.add('',''+edt_bairro.text+'',''+edt_cidade.text+'',''+edt_estado.text+'',''+edt_natural.text+'',''+edt_tel.text+'',''+edt_cel.text+'',''+edt_cpf.Text+'')'');
sql.add('',''+edt_rg.text+'',''+edt_pai.Text+'',''+edt_mae.text+'',''+edt_escolaridade.text+'',''+edt_civil.text+'')'');
sql.add('',''+edt_conjugue.text+'',''+edt_batisado.text+'',''+edt_cargo.text+'',''+edt_emissao.text+'',''+edt_data_batismo.text+'',''+edt_email.text+'')'');
ExecSQL;
end;
with DataModule1.tbl_membros do
begin
Close;
SQL.Clear;
sql.add(''insert into TBLmembros(nome_mbr,data_mbr,end_mbr,numero_mbr,cep_mbr,'');
sql.add(''bairro_mbr,cidade_mbr,estado_mbr,natural_mbr,tel_mbr,cel_mbr,cpf_mbr,'');
sql.add(''rg_mbr,filiacao_pai_mbr,filiacao_mae_mbr,escolaridade_mbr,estado_civ_mbr,'');
sql.add(''nome_conju_mbr,batisado_mbr,cargo_mbr,dt_emissao_mbr,batismo_mbr,email_mbr,'');
sql.add(''values(''+edt_nome.text+'',''+edt_data.text+'',''+edt_endereco.text+'',''+edt_numero.text+'',''+edt_cep.text+'')'');
sql.add('',''+edt_bairro.text+'',''+edt_cidade.text+'',''+edt_estado.text+'',''+edt_natural.text+'',''+edt_tel.text+'',''+edt_cel.text+'',''+edt_cpf.Text+'')'');
sql.add('',''+edt_rg.text+'',''+edt_pai.Text+'',''+edt_mae.text+'',''+edt_escolaridade.text+'',''+edt_civil.text+'')'');
sql.add('',''+edt_conjugue.text+'',''+edt_batisado.text+'',''+edt_cargo.text+'',''+edt_emissao.text+'',''+edt_data_batismo.text+'',''+edt_email.text+'')'');
ExecSQL;
end;
Jose Silva
Curtidas 0
Respostas
Joel Rodrigues
25/03/2014
Concatenar o que exatamente? Se o campo está grande demais, você não deveria TRUNCAR?
GOSTEI 0
Marisiana Battistella
25/03/2014
Também não entendi exatamente o que você quer saber....
Mas, já tentou verificar se em algum dos campos você não está informando um texto/descrição que esteja excedendo o tamanho do campo?
Mas, já tentou verificar se em algum dos campos você não está informando um texto/descrição que esteja excedendo o tamanho do campo?
GOSTEI 0
Jose Silva
25/03/2014
Bem o que ocorre é que minha string está muito grande e meu professor me esnsiou desse jeito mas da erro astes ela estava ssim
with DataModule1.tbl_membros do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO TBLmembros (nome_mbr,data_mbr,end_mbr,numero_mbr, cep_mbr,bairro_mbr,cidade_mbr estado_mbr, natural_mbr, tel_mbr, cel_mbr, cpf_mbr, rg_mbr,filiacao_pai_mbr,filiacao_mae_mbr,escolaridade_mbr,estado_civ_mbr,nome_conju_mbr,batisado_mbr,cargo_mbr,dt_emissao_mbr,batismo,email_mbr)values('+edt_nome.Text+','+edt_data.text+','+edt_endereco.text+','+edt_numero.text+','+edt_cep.text+','+edt_bairro.text+','+edt_cidade.text+','+edt_estado.text+','+edt_natural.text+','+edt_tel.text+','+edt_cel.text+','+edt_cpg.text+','+edt_rg.text+','+edt_pai.Text+','+edt_mae.text+','+edt_civil.text+','+edt_conjugue.text+','+edt_batisado.text+','+edt_emissao.text+','+edt_email.text+')');
ExecSQL;
e da um erro String literals may have at most 255 elemenst
[img]http://arquivo.devmedia.com.br/forum/imagem/361863-20140325-130431.jpg[/img]
with DataModule1.tbl_membros do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO TBLmembros (nome_mbr,data_mbr,end_mbr,numero_mbr, cep_mbr,bairro_mbr,cidade_mbr estado_mbr, natural_mbr, tel_mbr, cel_mbr, cpf_mbr, rg_mbr,filiacao_pai_mbr,filiacao_mae_mbr,escolaridade_mbr,estado_civ_mbr,nome_conju_mbr,batisado_mbr,cargo_mbr,dt_emissao_mbr,batismo,email_mbr)values('+edt_nome.Text+','+edt_data.text+','+edt_endereco.text+','+edt_numero.text+','+edt_cep.text+','+edt_bairro.text+','+edt_cidade.text+','+edt_estado.text+','+edt_natural.text+','+edt_tel.text+','+edt_cel.text+','+edt_cpg.text+','+edt_rg.text+','+edt_pai.Text+','+edt_mae.text+','+edt_civil.text+','+edt_conjugue.text+','+edt_batisado.text+','+edt_emissao.text+','+edt_email.text+')');
ExecSQL;
e da um erro String literals may have at most 255 elemenst
[img]http://arquivo.devmedia.com.br/forum/imagem/361863-20140325-130431.jpg[/img]
GOSTEI 0
Marisiana Battistella
25/03/2014
Encontrei este post no Active Delphi que talvez te ajude a resolver:
[url]http://www.activedelphi.com.br/forum/viewtopic.php?t=42819&sid=6b0093bdea09fa063a0c5b670e94ca32[/url]
O moço postou o mesmo erro que está ocorrendo pra vc:
Amigos estou começando a desenvolver no delphi faz pouco tempo, mas ja me deparei com um problema que faz mes e nao consigo resolver com a seguinte expressão:
No exemplo acima nao tem todos os campos e é justamente esse o problema quado coloco todos os campos da tabela e o edit aparece a seguinte mensagem:
"String literals may have at most 255 elements", como faço para continuar em uma linha abaixo quando chegar no limite da string?
E a solução que apresentaram foi a seguinte:
Tente separar os campos, provavelmente o erro eh por isso
tipo (Veja um exemplo de incluir que eu uso para quando tem muitos campos, ou seja separo para nao ocorrer erro de sintaxe, quebrando as linhas)
De uma olhada e adapte para sua necessidade.
Código:
[url]http://www.activedelphi.com.br/forum/viewtopic.php?t=42819&sid=6b0093bdea09fa063a0c5b670e94ca32[/url]
O moço postou o mesmo erro que está ocorrendo pra vc:
Amigos estou começando a desenvolver no delphi faz pouco tempo, mas ja me deparei com um problema que faz mes e nao consigo resolver com a seguinte expressão:
Foreiro1:= 'INSERT INTO TB_FOREIRO (FOREIRO) VALUES ('''+Edt_Nome.Text+''','''+Cb_Tipo.Text+''')';
No exemplo acima nao tem todos os campos e é justamente esse o problema quado coloco todos os campos da tabela e o edit aparece a seguinte mensagem:
"String literals may have at most 255 elements", como faço para continuar em uma linha abaixo quando chegar no limite da string?
E a solução que apresentaram foi a seguinte:
Tente separar os campos, provavelmente o erro eh por isso
tipo (Veja um exemplo de incluir que eu uso para quando tem muitos campos, ou seja separo para nao ocorrer erro de sintaxe, quebrando as linhas)
De uma olhada e adapte para sua necessidade.
Código:
sql.text :=
'Insert into sind2 '+
' (matricula, admissao, associado, naturalDE, estado, dtnas, '+
' estcivil, conjuge, ctps, serie, prevsoc, te, reservista, '+
' residencia, pai, mae, nacpai, nacmae, propried, propriet, '+
' endereco, dtadm, empreg, propri, arrend, boiaf, funcao, remun, '+
' dp1, dp2, dp3, dp4, dp5, dp6, dp7, dp8, dp9, dp10, '+
' par1, par2, par3, par4, par5, par6, par7, par8, par9, par10, '+
' dt1, dt2, dt3, dt4, dt5, dt6, dt7, dt8, dt9, dt10, '+
' OBS1, OBS2, SINDSIM, SINDNAO, LOCAL, FOTO, VALORPG, MENSALIDADE, SIT) '+
'values '+
' (:matricula, :admissao, :associado, :naturalDE, :estado, :dtnas,'+
' :estcivil, :conjuge, :ctps, :serie, :prevsoc, :te, :reservista, '+
' :residencia, :pai, :mae, :nacpai, :nacmae, :propried, :propriet, '+
' :endereco, :dtadm, :empreg, :propri, :Arrend, :boiaf, :funcao, :remun, '+
' :dp1, :dp2, :dp3, :dp4, :dp5, :dp6, :dp7, :dp8, :dp9, :dp10, '+
' :par1, :par2, :par3, :par4, :par5, :par6, :par7, :par8, :par9, :par10, '+
' :dt1, :dt2, :dt3, :dt4, :dt5, :dt6, :dt7, :dt8, :dt9, :dt10, '+
' :OBS1, :OBS2, :SINDSIM, :SINDNAO, :LOCAL, :FOTO, :VALORPG, :MENSALIDADE, :SIT) ';
//Passe por parametros
Parambyname...
...
ExecSQL
GOSTEI 0
Jose Silva
25/03/2014
Consegui galera muito obrigado não tinha pensado em passar por parâmetros mas agora deu tudo certo
GOSTEI 0
Marisiana Battistella
25/03/2014
Que bom! Precisando, estamos aí!
GOSTEI 0