Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MVMSPHC

[Resolvido] Erro ao usar o Zquery

Recommended Posts

Boa tarde

 

Tenho uma tabela chamada produtos com as seguintes colunas:

 

Idproduto integer

pdt_nome varchar;

pdt_precokg float;

pdt_qntdest float;

 

E estou tentando fazer um insert da seguinte forma;

 

v1 := strtofloat(DBedit2.text);

v2 := strtofloat(DBedit3.text);

ZQuery1.Active := False;

ZQuery1.SQL.Clear;

ZQuery1.SQL.Add(' insert into produtos (pdt_nome) values ("'+DBedit1.Text+'") ');

ZQuery1.SQL.Add(' insert into produtos (pdt_precokg) values ('+v1+') ');

ZQuery1.SQL.Add(' insert into produtos (pdt_qntdest) values ('+v2+') ');

ZQuery1.ExecSQL;

 

O nome do produto eh inserido mas as outras o resto acusa erro de incompativel string com real, como fazer ?

 

Lembrando que eh um banco Mysql, delphi 7.

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente o seguinte:

 

v1 := strtofloat(DBedit2.text);
v2 := strtofloat(DBedit3.text);
ZQuery1.Active := False;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(' insert into produtos (pdt_nome, pdt_precokg, pdt_qntdest) values (:pNome, :pPrecoKg, :pQntDest)');
ZQuery1.ParamByName('pNome').AsString:= Edit1.Text;
ZQuery1.ParamByName('pPrecoKg').AsFloat:= v1;
ZQuery1.ParamByName('pQntDest').AsFloat:= v2;
ZQuery1.ExecSQL;

 

abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente o seguinte:

 

v1 := strtofloat(DBedit2.text);
v2 := strtofloat(DBedit3.text);
ZQuery1.Active := False;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(' insert into produtos (pdt_nome, pdt_precokg, pdt_qntdest) values (:pNome, :pPrecoKg, :pQntDest)');
ZQuery1.ParamByName('pNome').AsString:= Edit1.Text;
ZQuery1.ParamByName('pPrecoKg').AsFloat:= v1;
ZQuery1.ParamByName('pQntDest').AsFloat:= v2;
ZQuery1.ExecSQL;

 

abraços !!!

Muito obrigado !!!!!

 

Sem querer ser chato agora mas, o que o ZQuery1.ParamByName('pNome').AsString:= Edit1.Text; fez ? tipo, oq aconteceu nessa linha, pra eu poder repetir nas proximas forms ?

 

Mas denovo, muito obrigado !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é o seguinte ...

 

em instruções SQL, quando você utiliza o caracter ":", você está criando um parametro:

 

ex: 'select * from TABLE where CAMPO = :pCAMPO'...

 

neste caso acima, você criou o parametro "pCAMPO" com um valor ainda indefinido ...

 

agora, para passar um valor pra esse parametro, utilizamos a seguinte linha de comando:

Query1.ParamByName('pCAMPO').AsString:= 'texto';

 

 

entendeu + ou - ??? rsrsrs

 

 

abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.