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]

Responder a