construir um select com parametros em tento de execução !
21/09/2004
0
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
Posts
21/09/2004
Vinicius2k
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+
21/09/2004
Hugofab
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
21/09/2004
Vinicius2k
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+
Clique aqui para fazer login e interagir na Comunidade :)