delphi7 string longa

Delphi

27/03/2014

galera sou eu dinovo é sobre as strings longas do delphi7 , bem fiz exatamente como o exemplo

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

Jose Silva

Curtidas 0

Respostas

Wilton Queiroz

Wilton Queiroz

27/03/2014

ta faltando aspas quandoenvia para o servidor...
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
Jose Silva

Jose Silva

27/03/2014

ta faltando aspas quandoenvia para o servidor...
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
Wilton Queiroz

Wilton Queiroz

27/03/2014

o Quotedstr serve para adicionar a ' (aspa) na string

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
Jose Silva

Jose Silva

27/03/2014

Galera valeu muito a ajuda de todos mas ainda assim não consegui resolver meu problema, o que eu queria era
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
POSTAR