Fórum Concatenar string em delphi7 #473939

25/03/2014

0

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;

Jose Silva

Jose Silva

Responder

Posts

25/03/2014

Joel Rodrigues

Concatenar o que exatamente? Se o campo está grande demais, você não deveria TRUNCAR?
Responder

Gostei + 0

25/03/2014

Marisiana Battistella

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?
Responder

Gostei + 0

25/03/2014

Jose Silva

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]
Responder

Gostei + 0

25/03/2014

Marisiana Battistella

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:
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



Responder

Gostei + 0

26/03/2014

Jose Silva

Consegui galera muito obrigado não tinha pensado em passar por parâmetros mas agora deu tudo certo
Responder

Gostei + 0

26/03/2014

Marisiana Battistella

Que bom! Precisando, estamos aí!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar