Ver Mensaje Individual
  #11  
Antiguo 30-10-2017
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Reputación: 11
wilcg Va por buen camino
Hola The Cid James,
quizas te sirva esto, yo uso un autoincremental de esta manera y al mismo tiempo le indico de que numero iniciar y
podras manejar el ID a tu antojo, solo haz como te indico y pruebalo y analizalo si te sirve luego lo personalizas
a tu agrado.

te menciono que uso componentes UniDac, creo que no va haber diferencias con otros componentes.

Necesitaras un Query y renombralo como Generador, vas al Fields Editor -> New Field -> en
Name -> dale un nombre ID
Type -> indica el tipo de campo a INTEGER
Component -> teva a generar un nombre algo asi GeneradorID

luego usa esta FUNCION

Código Delphi [-]
function GenerarID( tTabla, tCampoId :string; tNum :integer): Integer;
var
  NCodigo: Integer;
begin
  with Generador do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT MAX(' + tCampoId );
    SQL.Add(') AS ID FROM ' + tTabla );
    Open;
    NCodigo := GeneradorID.AsInteger;
    if NCodigo = 0 then
      Result := tNum
    else
      Result := NCodigo + 1;
    Close;
    Active := False;
  end;

  {
   USO:   GenerarID( 'clientes','id_cliente',3001);

  ejemplo
  GenerarID( 'clientes',  //Nombre de la tabla
    'id_cliente',  //Nombre del campo a incrementar, tiene que ser numerico, etc
    3001    //Aca le indicas de que numero quieres que inicie por primera vez
    );
  }
end;

NOTA: probado en PostgreSQL y Acces. en SQLite no va hay que adaptarla.
mas claro imposible...
Responder Con Cita