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