Problema executando SQL com ADOQuery

Delphi

02/06/2004

Olá Amigos

Mais uma vez peço a ajuda de vocês. Tenho um ADOQuery que utilizo para excutar a limpeza de diversos arquivos utilizando o comando SQL que está abaixo. Porém, em todas as tabelas que desejo limpar e que o campo data está formatado como data não tenho problemas, executad perfeitamente, mas uma das tabelas está com um campo onde é armazenada a data formatado como texto e quando tento executar o comando abaixo dá uma mensagem de erro indicando que o parâmetro ´varData´ não foi encontrado. Onde é que estou errando?


ADOQuery1.Close;
ADOQuery1.SQL.Text := ´delete from Notas where data = :varData and Cliente is null´;
ADOQuery1.Parameters.ParamByName(´varData´).Value := DateToStr(dData);
ADOQuery1.ExecSQL;

Obrigado amigos.


Carlos Alberto

Carlos Alberto

Curtidas 0

Respostas

Tnaires

Tnaires

02/06/2004

Tente passar o valor do parâmetro sem convertê-lo para string.


GOSTEI 0
Bon Jovi

Bon Jovi

02/06/2004

TParameters é muito chato... No seu caso tem como fugir disso. Se no banco ´varData´ não é Date/Time e sim texto, então concatene direto no SQL.

const
SEU_FORMATO_TEXTO_DATA = ´dd/mm/yyyy´;

var
StrData: string;

begin

StrData := FormatDateTime(SEU_FORMATO_TEXTO_DATA, dData);

ADOQuery1.Close;
ADOQuery1.Parameters.Clear;
ADOQuery1.ParamCheck := False;
ADOQuery1.SQL.Text := ´delete from Notas where data = ´ + QuotedStr(StrData) + ´ and Cliente is null´;
ADOQuery1.ExecSQL;

Mesmo sendo tipo datetime no banco, dependendo do banco tb tem como fugir do TParameters, mas terá q usar função do banco pra conversão de string pra datetime.


GOSTEI 0
Carlos Alberto

Carlos Alberto

02/06/2004

Obrigado Amigos,

Funcionou perfeitamente.

Abraço


GOSTEI 0
POSTAR