Fórum dbExpress Error #287695
12/07/2005
0
Estou tentando usar DBExpress (SQLQuery, ClientDataSet, DataSetProvider, etc.) com SQL Server.
Já fiz a conexão com o banco.
Criei um cadastro pequeno só pra testar.
Liguei os componentes corretamente. Até ai, blz!!!
Dentro do SQLQuery, passei a seguinte query:
select ID_CLIENTE, NOME, CPF, CIDADE, ESTADO, ENDERECO, CEP, DATACADASTRO
from CLIENTES
where ID_CLIENTE like :P_IDCLI
order by NOME
Ai que vem o erro: quando eu clico na propriedade Active para passar para True, da o seguinte erro:
Database Server Error: SQL State: HY000, SQL Error Code: 0
Invalid input parameter values. Check the status values for detail.
Ai, eu tiro a cláusula where o erro para. Mas quero passar parâmetro na query.
O que pode ser isso???
Alguém pode me ajudar???
Obrigado!!!
Cristiano Mário
Cristianojedi
Curtir tópico
+ 0Posts
12/07/2005
Beppe
Gostei + 0
12/07/2005
Cristianojedi
Como eu faço isso ???
Obrigado!!!
Cristiano Mário
Gostei + 0
12/07/2005
Beppe
Tempo de projeto: veja a propriedade Parameters(ou Params), terá um ítem chamado P_IDCLI. Duplo-clique e dê um valor a ele.
ou
Tempo de execução: DataSet1.Params(´ P_IDCLI´).AsInteger := algum id;
Gostei + 0
12/07/2005
Cristianojedi
Tem mais alguma sugestão???
Alguém sabe o que pode ser???
PS: Estou usando Delphi 2005 com SQL Server 2000.
Obrigado!!!
Cristiano Mário
Gostei + 0
12/07/2005
Cristianojedi
Cristiano
Gostei + 0
12/07/2005
Eduardo Pereira
[]´s
Eduardo Pereira
Gostei + 0
12/07/2005
Cristianojedi
O problema não é esse!!!
Mais alguma sugestão???
Cristiano
Gostei + 0
12/07/2005
Eduardo Pereira
No SQL, torca o ´like´ por ´=´
Gostei + 0
12/07/2005
Cristianojedi
Continuo com o problema.
Tem mais alguém que possa me ajudar???
Cristiano
Gostei + 0
12/07/2005
Kotho
O ParamType, normalmente é ptInput.
O DataType varia de banco para banco... No meu caso, eu utilizo Oracle...
Para Char ou Varchar -> ftString
Para Date -> ftTimeStamp
Para Number -> ftBCD
Quanto ao valor, não é necessário para setar Active como True, à menos que se queira checar, por meio de DataControls, os valores...
Gostei + 0
12/07/2005
Cristianojedi
DataType -> ftInteger
ParamType -> ptImput, e continua dando o mesmo erro.
Já tentei outros tipos de DataType e ParamType, só que não resolveu. Tem alguma coisa errada e não consigo descobrir o que é.
Fiz um teste e alterei a query para:
select ID_CLIENTE, NOME, CPF, CIDADE, ESTADO, ENDERECO, CEP, DATACADASTRO
from CLIENTES
where NOME like :P_NOME
order by NOME
Passei corretamente o parâmetro e não ocorreu o erro.
Só que eu quero passar o campo ID_CLIENTE como parãmetro e não o campo NOME como parâmetro.
Mais alguém para me ajudar???
Cristiano
Gostei + 0
12/07/2005
Emerson Nascimento
utilizo o sql server com dbexpress e não tenho nenhum tipo de erro. inclusive posso dizer que as dicas dos colegas estão corretas.
Gostei + 0
12/07/2005
Cristianojedi
Tenho plena certeza que as dicas dos colegas estão corretas.
Eu coloquei ´=´ ao invés de ´like´ e ainda não resolveu o problema.
Realmente está difícil de descobrir.
Obrigado!!!
Cristiano
Gostei + 0
12/07/2005
Emerson Nascimento
a instrução deve ficar no SQLDataset, mas toda e qualquer manipulação deve ser feita no ClientDataset: passagem de parâmetros, abertura, fechamento e demais ações.
Gostei + 0
12/07/2005
Cristianojedi
Vou ver o que eu arrumo aqui. Se eu ver alguma solução, eu coloco no fórum. Deve ser alguma bobeirinha. Vou dar uma olhada detalhada depois.
Abraços e muito obrigado!!!
Cristiano
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)