delphi7 string longa
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]
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
Curtidas 0
Respostas
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..
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
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..
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
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
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
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.
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