ese tipo de problemas es tipico cuando no se le define el tipo al parametro, deberias hacerlo asi:
Código Delphi
[-]
with fmodulo.qry_registra do
begin
sql.Add('insert into volantes(usuario,recibe,volante,fecha_oficio)');
sql.Add('values (:usuario,:recibe,:volante,:fecha_oficio);');
Parameters.ParamByName('usuario').Value:=Trim(Fprincipal.wusuario);
Parameters.ParamByName('recibe').Value:=wrecibio;
Parameters.ParamByName('volante').Value:= woficio;
Parameters.ParamByName('fecha_oficio').AsDate:= Fregistro.dtp_fecha_oficio.Date;
try
ExecSQL;
application.MessageBox('Registro Almacenado Correctamente','',mb_ok + mb_iconinformation);
exit;
except
on E:EOleException do
begin
MessageDlg(Format('Error: %s Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
exit;
end;
end;
end;
Es una buena practica cuando usas parametros que definas los tipos asi te evitaras problemas, por ejemplo si guardas texto utilizas .AsString, si es un entero .AsInteger, si es un campo con decimales .AsFloat, si es fecha .AsDate o .AsDateTime, etc...
Saludos