Ver Mensaje Individual
  #1  
Antiguo 22-06-2012
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 585
Reputación: 20
jafera Va por buen camino
Buscar registro por parametros

Hola a todos.

Estoy intentando controlar si un registro esta dentro de una tabla con el código siguiente:

Código Delphi [-]
 
for i:= 1 to StrToInt(CursaVOLTES.Text) do
        begin
                Pasos.Close;
                Pasos.Open;
                if Pasos.Locate('ID_CURSA; ID_VOLTA; DORSAL', VarArrayof([PasosID_CURSA.Value, PasosID_VOLTA.Value, PasosDORSAL.Value]),[])then
                begin
                        ShowMessage('Corredor existent');
                        Abort;
                end
                else
                begin
                        with ibqryInserta_Pas do
                        begin
                                Close;
                                ParamByName('ID_CURSA').AsString:= IntToStr(CursaID_CURSA.Value);
                                ParamByName('DORSAL').AsString:= IntToStr(InscritsDORSAL.Value);
                                ParamByName('VOLTA').AsString:= IntToStr(i);
                                ParamByName('PASAT').AsString:='N';
                                Open;
                        end;
                        ibqryInserta_Pas.Next;
                end;
        end;

Pasos es la tabla donde guardo los registros, los cuales constan de un ID (autoincremental con trigger y único) un ID_CURSA y un ID_Volta, (se los paso por parametro) y un DORSAL, que es el que escribo a mano.

No se si estoy pasando bien los parametros al arrayof, pero si ejecuto paso a paso, el valor que cogen los campos es siempre 0, con lo que el array queda 0,0,0 y evidentemente no cumple la condición, con lo cual me añade un registro que ya existe a la tabla, es decir si existe 1,1,6 me dice que no y lo vuelve a crear.

Alguna idea?

Delphi 6 Firebird 1.5.6

Saludos
Responder Con Cita