Array
(
)

Pesquisa parametrizada com campo CHAR no DbExpress

Miranilton
   - 12 ago 2004

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?


Rpelisson
   - 12 ago 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:
#Código


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:
#Código

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.


Miranilton
   - 12 ago 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.


Rpelisson
   - 12 ago 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...


Miranilton
   - 12 ago 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.


Rpelisson
   - 12 ago 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?