construir um select com parametros em tento de execução !

21/09/2004

Ola,


Estou iniciando no Dbexpress, migrando de query para Sqldataset
estou usando este comando para montar minha consulta mas não esta funcionando .

ClientDataSet1.Close;
SQLDataSet1.CommandText:=´Select * from ´Empresa´ where Cnpj_CPF= :Cnpj_CPF´;
sqldataset1.Params.ParamByName(´Cnpj_CPF´).AsString:=edt_cpf_cnpj.Text;
clientdataset1.Open;

oque esta errado ?
tenho que configurar alguma coisa no componete ?
veja o erro:
DBX erro: No Mapping for Error Code Found.

Se algum puder me ajudar agradeço

Hugo Fabrício


Hugofab

Respostas

21/09/2004

Vinicius2k

Colega,

Esta pode não ser a solução, porque o próprio DBX não encontrou um código de erro adequado ao que foi retornado pelo banco, mas à princípio é o que parece-me estar incorreto :

1. Retire as aspas dos nomes dos objetos da instrução ( a não ser q na criação vc tenha utilizado as aspas ).

2. REGRA (dbExpress): todos os nomes de objetos do banco de dados precisam estar em maiúsculas

3. Visualmente, prefira utilizar as instruções e nomes de parametros em minúsculas contrastando com os objetos em maiúsculas a fim de facilitar a leitura.

Creio que o código correto seria este :
ClientDataSet1.Close;
SQLDataSet1.CommandText:= ´select * from EMPRESA where CNPJ_CPF = :cnpj_cpf´;
SQLDataSet1.ParamByName(´cnpj_cpf´).AsString:= edt_cpf_cnpj.Text;
ClientDataSet1.Open; 


Espero ter ajudado...
T+


Responder Citar

21/09/2004

Hugofab

Vinicius2k

Consegui fazer funcionar mas ficou assim :

SQLDataSet1.Active := false;
ClientDataSet1.Active := false;
SQLDataSet1.CommandText:= ´select * from ´Empresa´ where ´Cnpj_CPF´ = :cnpj_cpf´ ;
SQLDataSet1.ParamByName(´cnpj_cpf´).AsString:= edt_cpf_cnpj.Text;
ClientDataSet1.Active := true;
sqldataset1.Active := true;

Achei muito estranho é que tive que colocar “´ entre os campos para poder funcionar. O meu banco de dados foi gerando pelo Interbase DataPump e nele tive que marcar a opção para usar ´ ´ provavelmente foi por este motivo ! mas é assim mesmo.
É apanhando que se aprende !

Muito obrigado!

Hugo Fabrício


Responder Citar

21/09/2004

Vinicius2k

Hugo,

Então está explicado... pessoalmente eu não uso as aspas, mas já q o software utiizado para migração o forçou a utilizar, vc não vai poder fugir disto... em toda e qualquer instrução sua os objetos do banco (Tabelas e Colunas, Views, Triggers, SPs, etc) terão se ser referenciados entre aspas...

Minha sugestão é que vc mantenha o padrão para os novos objetos que vc criar, para que vc não se confunda com ´hora usa aspas, hora não usa...´

T+


Responder Citar