Dúvida simples de ClientDataSet

12/08/2008

1

Tenho uma tabela com dois atributos:
Nome e CPF
Criei um CDS apontando para esta tabela.
Acontece que neste CDS eu criei dois parametros:pNome e pCpf;
No meu código eu carrego assim:
Params[00].AsString := Edit1.Text;
Params[01].AsString := Edit2.Text;
Agora preciso dar um Insert nesta tabela, com os parametros. Como faço?
INSERT INTO TABELA VALUES(... E aí, como carrego aqui os parametros?


Responder

Posts

12/08/2008

Estanieski

Cara Pesquisa sobre procedimento SQL:

Exemplo

insert into FORNECEDOR_EXAME
(CODIGO, VALOR_CUSTO, VALOR_VENDA, CODIGO_INDEX, FORNECEDOR, NOMEEXAME,
INDEXFORNECEDOR)
values
(:CODIGO, :VALOR_CUSTO, :VALOR_VENDA, :CODIGO_INDEX, :FORNECEDOR, :NOMEEXAME,
:INDEXFORNECEDOR)


update FORNECEDOR_EXAME
set
CODIGO = :CODIGO,
VALOR_CUSTO = :VALOR_CUSTO,
VALOR_VENDA = :VALOR_VENDA,
CODIGO_INDEX = :CODIGO_INDEX,
FORNECEDOR = :FORNECEDOR,
NOMEEXAME = :NOMEEXAME,
INDEXFORNECEDOR = :INDEXFORNECEDOR
where
CODIGO = :OLD_CODIGO


delete from FORNECEDOR_EXAME
where
CODIGO = :OLD_CODIGO


Responder

12/08/2008

Paulo

Fiz assim e está vindo null e os parametros estão carregados, pois eu já testei.


Responder

12/08/2008

Paulo

Se rtetiro as aspas, dá erro, se coloco não vem nada, tudo null. Uso BDS2007 e banco Oracle 8i e DBExpress.
CommandText :=
´INSERT INTO TABELA VALUES(pNome,pCpf)´;//Assim vem null

CommandText :=
´INSERT INTO TABELA VALUES(´+pNome+´,´+pCPF+´)´;//Assim dá erro


Responder
faça da forma que o colega [b:fa4cc8ceb6]estanieski[/b:fa4cc8ceb6] indicou:
cds.commandtext := ´INSERT INTO TABELA VALUES(:pNome, :pCpf)´;
cds.Params[0].AsString := Edit1.Text;
cds.Params[1].AsString := Edit2.Text;
cds.Execute;

ou direto:
cds.CommandText := ´INSERT INTO TABELA VALUES(´ + QuotedStr(Edit1.Text) + ´,´ + QuotedStr(Edit2.Text) + ´)´;
cds.Execute;


Responder

12/08/2008

Paulo

Matei o problema. Os parametros são ftString. Eu passava um quotedstr(para os campos Varchar2) e dava erro. Retirei os quotedstr e funcionou, inclusive resolvei um outro post sobre Debugar Procedure. Agora está funcionando tudo.


Responder