Fórum delphi7 string longa #474235

27/03/2014

0

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

Responder

Posts

27/03/2014

Wilton Queiroz

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

Gostei + 0

28/03/2014

Jose Silva

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;

Responder

Gostei + 0

29/03/2014

Wilton Queiroz

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
Responder

Gostei + 0

31/03/2014

Jose Silva

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

Gostei + 0

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

Aceitar