Pesquisa parametrizada com campo CHAR no DbExpress

12/08/2004

0

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?


Miranilton

Miranilton

Responder

Posts

12/08/2004

Rpelisson

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:
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]


Responder

12/08/2004

Miranilton

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.


Responder

12/08/2004

Rpelisson

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...


Responder

12/08/2004

Miranilton

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.


Responder

12/08/2004

Rpelisson

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?


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar