La solución a todo esto es no utilizar un string para pasar una fecha sino un parámetro.
Código Delphi
[-]function PegaVendaPorCaixa(pComputador: String;
pData: TDateTime): Double;
var
sql: String;
lQuery : tQualquerQuery ;
begin
lQuery := tQualquerQuery.Create( objDataBaseMidle ) ;
with lQuery do
begin
sql.add('select sum(n_vlr_total_ped)total from tbl_pedido ');
sql.add('where id_computador = ?id_computador ');
sql.add(' and d_ent_ped = ?d_ent_ped ');
try
Params.ByName['ID_COMPUTADOR'].AsString := pComputador;
Params.ByName['D_ENT_PED'].AsDateTime := pData;
sql.savetofile('c:\lixo\tt.txt');
open;
if RecordCount > 0 then
Result := lQuery.FieldValues['total'];
except
on e: exception do
begin
MessageDlg( e.Message, mtError, [ mbOk ], 0 ) ;
end ;
end;
end;
end;