Hola!
Llevo varios dias dandole vuelta a este error y no encuentro cual es el problema, En un formulario con un boton llamo a un procedimiento que se encuentra declarado en un modulo de datos, la primera vez se ejecuta correctamente, la siguiente vez que lo intento aparece el mensaje de error:
Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project Captura21.exe raised exception class EOleException with message 'No coinciden los tipos de datos en la expresión de criterios'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
|
La llamada desde el boton en el formulario:
Código Delphi
[-]procedure TfrmPrincipal.Button1Click(Sender: TObject);
begin
LogicaDatos.InsertarCapturas('1',' 1234');
end;
El procedimiento en el modulo de datos:
Código Delphi
[-]procedure TLogicaDatos.InsertarCapturas(ID:string;Datos:string);
var
contador: integer;
begin
contador := 0;
with QyUltimo do
begin
Close;
sql.clear;
sql.add('SELECT * FROM Captura ' +
'WHERE (Bascula = ' + QuotedStr(ID) + ')' +
'ORDER BY Consecutivo');
open;
end;
if not QyUltimo.IsEmpty then
begin
QyUltimo.Last ;
if not QyUltimo.FieldByName('Descarga').IsNull then
begin
contador := QyUltimo.FieldByName('Descarga').Value;
Inc(contador);
end;
end
else
Inc(contador);
CnxDatos.ADOTable1.Last ;
with CnxDatos.ADOTable1 do
begin
Append;
FieldByName('HoraFecha').Value := Now;
FieldbyName('Bascula').Value := ID;
FieldByName('Descarga').Value := contador;
FieldByName('Peso').Value := Datos;
FieldByName('Acumulado').Value := Datos;
Post;
end;
end;
Lo curiosos de este asunto es que este mismo procedimiento lo uso en otra aplicacion similar y no me da problemas, aqui lo que hice fue reducir la aplicacion a su minimo para solo ver este procedimiento y tratar de encontrar ese error pero no, no veo nada raro. ¿sera que de tanto verlo ya se me escondio el error?
Por cierto es Delphi 7, ADO y Access.
Gracias por su tiempo.
EDITO: Era un error en la declaracion del campo bascula en la bd. Lo tenia declarado como integer y ¡le intentaba mandar un string! Accidentalmente modifique la creacion de la bd y nunca pense en eso.