Acabo de releer el hilo y ya encuentro sentido a todo:
1º- Necesitas un SP de ejecución... nada de suspend.
Código SQL
[-]PROCEDURE VERIFICA_ROBADO (
PEID_TICKET Integer,
PENRO_TICKET Varchar(15) )
RETURNS (
PSES_ROBADO Varchar(2) )
AS
DECLARE VARIABLE DVMInimo VARCHAR(15);
DECLARE VARIABLE DVMaximo VARCHAR(15);
BEGIN
Pses = 'no';
FOR SELECT minimo,maximo FROM RANGO_ROBADOS WHERE id_ticket=:PEId_ticket
INTO DVMinimo,DVMaximo
DO
BEGIN
if (PEnro_ticket BETWEEN DVMinimo AND DVMaximo) THEN
begin
PSes_robado='si'
Break;
END
2º - Para ejecutarlo, usaría un Query con la consulta:
Código Delphi
[-]
query1.sql.text := 'execute procedure verifica_Robado(:elticket, :penro)';
query1.parambyname('elticket').AsInteger := 3;
query1.parambyname('pennro').AsString := edit1.text;
query1.Execsql;
ShowMessage(query1.FieldByname('Pses').AsString);
Lo que no entiendo es por qué usas campos varchar para PENRO_TICKET DVMInimo y DVMaximo... ¿no deberían ser enteros?... no sé, quizás no obtengas los valores esperados porque un varchar no es lo mismo (al tiempo de comparar con el operador between) que comparar con números.
Saludos