Ver Mensaje Individual
  #5  
Antiguo 18-07-2007
Avatar de casacham
casacham casacham is offline
Miembro
 
Registrado: abr 2006
Ubicación: Cordoba->Argentina. Arboleas->Almeria->España
Posts: 184
Reputación: 19
casacham Va por buen camino
Cool Funcion salvadora

Yo lo he resuelto con esta funcion que me busca los huecos en los campos ID, tal vez para muchos datos no funcione porque puede enlentecer la PC

Código Delphi [-]

FUNCTION TDM_BD.ValidIdReg(TOrigen,Tablit: TADOTable; Campo: String):Integer;
Var I: Integer;
begin
{Funcion definida para campos numericos, busca el numero entero inmediato
es para asignar el valor para los campos IdReg, por ejemplo}
Tablit.TableName:=TOrigen.TableName;
Tablit.Open;
Tablit.Clone(TOrigen);
I:= 0;
While Tablit.Locate (Campo, I,[loCaseInsensitive]) = True do
begin
I:= I+1;
end;
If Tablit.Locate (Campo, 0,[loCaseInsensitive]) = False then Result:= 0 Else Result:= I;
Tablit.Close;
end;





TOrigen es la tabla donde esta el campo al cual voy a asignar el valor Id
Tablit es la tabla donde realizo la busqueda, por defecto una tabla vacia solo con la ConnectionString asignada.

Se utiliza asi:


Código Delphi [-]
procedure TDM_BD.T_PCTE_NewRecord(DataSet: TDataSet);
begin
F_PCTE.cxDBTextEdit1.SetFocus;
T_PCTE_IdPcte.Value:=ValidIdReg(T_PCTE_, DM_BD_Ctrl.TCtrl, T_PCTE_IdPcte.FieldName);
T_PCTE_F_Ingreso.Value:=F_Prin.Calendario.Date;
end;
Responder Con Cita