Fórum Problema executando SQL com ADOQuery #235853

02/06/2004

0

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

Responder

Posts

03/06/2004

Tnaires

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


Responder

Gostei + 0

03/06/2004

Bon Jovi

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.


Responder

Gostei + 0

03/06/2004

Carlos Alberto

Obrigado Amigos,

Funcionou perfeitamente.

Abraço


Responder

Gostei + 0

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

Aceitar