Como dicen todos, en principio parece correcto. ¿estás seguro que es el lugar donde está marcando el error? (solo por descartar)
No tengo mas que correcciones de forma: (sugierousar open y close en luagar del active, es solo de forma)
Código Delphi
[-]
ruta_q:=Table5.fieldbyname('RUTA_DATOS').Value;
ruta_q:= ruta_q + '\SENSORES.DB';
Query3.close;
Query3.SQL.Clear;
With Query3.SQL Do
Begin
Add('SELECT NUM,SENSOR,UBICACION,ORIGEN,TIPO');
Add ('FROM "'+ruta_q+'"');
Add('WHERE');
Add('SENSOR = :sens1');
end;
query3.prepare;
query3.parambyname('sens1').asInteger:= dsensor;
Query3.open;
Ahora, para verificar que es lo que pasa, revisa los parametros que te estan llegando... por ejemplo imprimiendo con un showmessage el Query3.Paramscount (No se si es asi o Query3.Params.count)
Otra opcion es que utilices el indice del parametro:
Código Delphi
[-] query3.prepare;
query3.params[0].asInteger:= dsensor;
Query3.open;
y por ultimo, podrias solucionar tu problema, pero no es la respuesta a este hilo:
Código Delphi
[-]
Query3.close;
Query3.SQL.Clear;
With Query3.SQL Do
Begin
Add('SELECT NUM,SENSOR,UBICACION,ORIGEN,TIPO');
Add ('FROM "'+ruta_q+'"');
Add('WHERE');
Add('SENSOR = '+Inttostr(dsensor));
end;
Query3.open;