Dúvida simples de ClientDataSet
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?
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?
Paulo
Curtidas 0
Respostas
Estanieski
12/08/2008
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
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
GOSTEI 0
Paulo
12/08/2008
Fiz assim e está vindo null e os parametros estão carregados, pois eu já testei.
GOSTEI 0
Paulo
12/08/2008
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
CommandText :=
´INSERT INTO TABELA VALUES(pNome,pCpf)´;//Assim vem null
CommandText :=
´INSERT INTO TABELA VALUES(´+pNome+´,´+pCPF+´)´;//Assim dá erro
GOSTEI 0
Emerson Nascimento
12/08/2008
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;
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;
GOSTEI 0
Paulo
12/08/2008
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.
GOSTEI 0