O maravilhosso (ECA), SQL Server EXIGE que seja usado o parametro
.AsDateTime, por que ele não tem distinção de campos Date, Time e TimeStamp.
Luciano Calenzani Simões escreveu:
>
>
> Companheiros, preciso passar um parâmetro do tipo TDateTime para um
> TSQLDataSet no banco MS SQL Server Express 2008 com Delphi 2009 com
> DBExpress, assim:
>
> {Exemplo}
> Query1.CommandText := 'select contrato from emprestimo where
> dt_vencimento <= :dt_vencimento';
> Query1.ParamByName('dt_vencimento').AsDate := pDataVencimento; // Onde
> pDataVencimento é uma variável do tipo TDateTime;
> Query1.Open;
> .....
> Query1.Close;
>
> Quando executa o Query1.Open ocorre um erro informando que há um
> parâmetro não setado. É a data. Se eu fizer assim funciona:
> Query1.ParamByName('dt_vencimento').AsString :=
> FormatDateTime('yyyy-MM-dddd', pDataVencimento);
>
> Mas não quero ficar fazendo cast no campo e variável. O campo
> dt_vencimento no banco é do tipo Date. E também não posso ficar
> concatenando String ao invés de passar por parâmetro.
>
> No Sybase isso funciona normalmente (das duas formas), só ocorre erro
> no SQL Server.
>
> Como vocês passam os parâmetros do tipo Date para as Querys?
>
> Muito obrigado.
>
> Luciano Calenzani Simões
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com <http://br.maisbuscados.yahoo.com>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 4033 (20090424) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4033 (20090424) __________
The message was checked by ESET NOD32 Antivirus.
http://www.eset.com
[As partes desta mensagem que não continham texto foram removidas]