Pesquisa parametrizada com campo CHAR no DbExpress
O que devo fazer para que uma simples consulta parametrizada utilizando o Dbexpress(SQLQuery e cia) funcione corretamente:
EX: SELECT * FROM cliente WHERE nome=:nome
Quando o parâmetro é passado somente com o nome, a pesquisa não retorna nenhum valor, mas quando completa-se o nome com caracteres em branco a pesquisa funciona.
O que fazer?
EX: SELECT * FROM cliente WHERE nome=:nome
Quando o parâmetro é passado somente com o nome, a pesquisa não retorna nenhum valor, mas quando completa-se o nome com caracteres em branco a pesquisa funciona.
O que fazer?
Miranilton
Curtidas 0
Respostas
Rpelisson
12/08/2004
Que banco você está utilizando?
Aqui estou com vários problemas utilizando o DBExpress acessando SQL 2000, tanto para dar insert, quanto para fazer consultas com parâmetros ocorre este tipo de erro.
Este erro acontece porque o DBExpress ao enviar as linhas de SQL para consultar ou para inserir utilizando parametros, ele perde o fechamento da string dos dados, ou seja ao invés dele enviar um comando completo dessa forma:
ele envia assim:
Falta fechar a string do comando, sendo assim o SQL se perde completamente.
Engraçado que só acontece no SQL.. testei em MySQL e funcionou normalmente.[/code]
Aqui estou com vários problemas utilizando o DBExpress acessando SQL 2000, tanto para dar insert, quanto para fazer consultas com parâmetros ocorre este tipo de erro.
Este erro acontece porque o DBExpress ao enviar as linhas de SQL para consultar ou para inserir utilizando parametros, ele perde o fechamento da string dos dados, ou seja ao invés dele enviar um comando completo dessa forma:
declare @P1 int set @P1=1 exec sp_prepexec @P1 output, N´@P1 char(40)´, N´select * from etc_vendedor where nome=@P1 ´, ´ADMINISTRADOR´
ele envia assim:
declare @P1 int set @P1=1 exec sp_prepexec @P1 output, N´@P1 char(40)´, N´select * from etc_vendedor where nome=@P1 ´, ´ADMINISTRADOR
Falta fechar a string do comando, sendo assim o SQL se perde completamente.
Engraçado que só acontece no SQL.. testei em MySQL e funcionou normalmente.[/code]
GOSTEI 0
Miranilton
12/08/2004
Eu estou utilizando também o SQLServer 2000, deve ter alguma atualização do Delphi para corrigir este problema.... não é possível que uma simples consulta parametrizada gere este problema.
GOSTEI 0
Rpelisson
12/08/2004
Você está utilizando o delphi 7 com dbexpress e sql 2000 tb?
chegou a fazer algum update no delphi?
mesmo porque meu sql está atualizadinho, tudo certinho.
Achei estranho também...
chegou a fazer algum update no delphi?
mesmo porque meu sql está atualizadinho, tudo certinho.
Achei estranho também...
GOSTEI 0
Miranilton
12/08/2004
Eu tb estou utilizando SQL2000 e Delphi7.
Vou tentar pegar as atualizações disponíveis para o Delphi7 e ver se isso para de acontecer.
Vou tentar pegar as atualizações disponíveis para o Delphi7 e ver se isso para de acontecer.
GOSTEI 0
Rpelisson
12/08/2004
Se encontrar alguma coisa de atualização dá um toque, tô com esse problema aqui há meses
Parei com o processo de migração de BDE para dbexpress justamente por causa desses problemas...
O seu está dando erro também ou funciona normalmente?
Parei com o processo de migração de BDE para dbexpress justamente por causa desses problemas...
O seu está dando erro também ou funciona normalmente?
GOSTEI 0