Hola, tengo el siguiente problema no se si les ha pasado:
primero les pongo la siguiente situacion
Tengo una tabla Pedidos.DB que tiene los campos Fecha_Alta y Fecha_Cancel del tipo DATE y son PARADOX 7.
Tengo la tabla y una Query en un Datamodule.
La Query no carga ninguna SQL sino que lo hago x codigo con el add
y lo tengo en un procedure.
Código:
procedure EjecutaSQL(var NroProv, Estd, FAltaA, FAltaB, FCancelA, FCancelB: String);
Begin
with ModuloDB.Q_Pedidos do begin
Close;
with SQL do
Begin
clear;
add('SELECT * FROM Pedidos A');
add('LEFT JOIN Proveedores B ON A.Nro_Proveed=B.Nro_Proveed');
add('WHERE A.Nro_Pedido > 0');
if (FAltaA<>'') AND (FAltaB<>'') then
add('AND Fecha_Alta BETWEEN '+QuotedStr(FAltaA)+' AND '+QuotedStr(FAltaB));
if (FCancelA<>'') AND (FCancelB<>'') then
add('AND Fecha_Cancel BETWEEN '+QuotedStr(FCancelA)+' AND '+QuotedStr(FCancelB));
end;
RequestLive:= true;
Open;
end;
End;
Ahora bien desde otro procedure propio del form con un DateTimePicker le permito elegir las FAltaA y FAltaB por ejemplo:
Código:
procedure TForm_Buscar_Pedidos.Btn_BuscarClick(Sender: TObject);
var
NroProv, Estd, FAltaA, FAltaB, FCancelA, FCancelB: String;
begin
FAltaA:='';
FAltaB:='';
FCancelA:='';
FCancelB:='';
NroProv:='';
Estd:='';
//Comienza a comprobar los tipos de busqueda mediante los CheckBox
if CBox_FAlta.Checked = true then
begin
FAltaA:=DateToStr(DTP_Fecha_AltaA.Date);
FAltaB:=DateToStr(DTP_Fecha_AltaB.Date);
end;
if CBox_FCancel.Checked = true then
begin
FCancelA:=DateToStr(DTP_Fecha_CancelA.Date);
FCancelB:=DateToStr(DTP_Fecha_CancelA.Date);
end;
EjecutaSQL(NroProv, Estd, FAltaA, FAltaB, FCancelA, FCancelB);
end;
Ni se fijen en Estd ni en NroProv xq esos andan solo puse el codigo que genera el problema.
EL PROBLEMA ES EL SIGUIENTE esto me tira un error que me dice algo asi:
Cita:
Project xxxxxx.exe raised exception class EDBEngineError with message 'Type Mismatch in expression.'. Process Stoped. Use Step or Run to Continue.
|
El caso es que antes de llamar a EjecutaSQL las Fechas del DateTimePicker
estan convertidas a String con el DateToStr.
Asi que no entiendo xq no anda.
Si alguien sabe que puede pasar y como solucionarlo me avisa.
Desde Ya. Muchas Gracias.