Fórum delphi7 string longa #474235
27/03/2014
0
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
passeio os parametros e deu tudo serto mas o problema e: mostrei ao meu professor e ele disse que não queria assim, e agora estou perdido
ele quer dessa maneira
begin
with DataModule1.tbl_membros do
begin
Close;
SQL.Clear;
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;
end;
se aguem souber como resolver o erro sem usar parametros agradeço.
[img]http://arquivo.devmedia.com.br/forum/imagem/361863-20140327-131051.jpg[/img]
Jose Silva
Curtir tópico
+ 0Posts
27/03/2014
Wilton Queiroz
faz assim:
sql.add(''values('+quotedstr(edt_nome.text)+','+quotedstr(edt_data.text)....
cuidado quando voce for passar campos do tipo data, veja o formato correto que deve ser enviado para o banco
ex: no sql server eu passo ano mes e dia...
outro problema sao campos numericos, vc tem que enviar . no lugar de , quando for separar casas decimais...
quando vc usa parambyname isso ja e feito internamente pelo delphi..
Gostei + 0
28/03/2014
Jose Silva
faz assim:
sql.add(''values('+quotedstr(edt_nome.text)+','+quotedstr(edt_data.text)....
cuidado quando voce for passar campos do tipo data, veja o formato correto que deve ser enviado para o banco
ex: no sql server eu passo ano mes e dia...
outro problema sao campos numericos, vc tem que enviar . no lugar de , quando for separar casas decimais...
quando vc usa parambyname isso ja e feito internamente pelo delphi..
Obrigado pela ajuda ,mas não entendi esse quotedstr, e tambem as aspas duplas
antes do values quando editei meu código ainda deu na erro,mas dessa ves não pelas strings longas
vou postar um código menor para melhor entender.
with DataModule1.tbl_visitantes do
begin
Close;
SQL.Clear;
SQL.ADD('insert into TBLvisitante(nome_vtt,endereco_vtt,bairro_vtt,cidade_vtt,');
sql.Add('fone_vtt,celular_vtt,emai_vtt,') ;
sql.add(''values(''+quotedstr(nome_visit.text)+','+quotedstr(endereco_visit.text)+','+quotedstr(bairro_visit.text)+','+quotedstr(cidade_visit.text)+','+quotedstr(fone_visit.text)+','+quotedstr(celular_visit.text)+','+quotedstr(email_visit.Text)+') ');
ExecSQL;
end;
Gostei + 0
29/03/2014
Wilton Queiroz
o exemplo que vc passou gera um sql errado por isso esta dando erro..
adicione um memo no form.
antes do execute
memo1.lines.text :=datamodule1.tbl_visitantes.sql.text;
assim vc vai saber o que esta sendo enviado para o banco e corrigir onde for necessario
Gostei + 0
31/03/2014
Jose Silva
concatenar minha string já que ela ultrapassa os 255 caracteres
já usei esse memo vi o que aconteçe, porem sou iniciante e não consigo visualizar erros de digitação
ou sintax se alguem souber como resolver agradeço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)