Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2005
novaten novaten is offline
Miembro
 
Registrado: abr 2005
Posts: 13
Poder: 0
novaten Va por buen camino
Resetear generador

tengo una form en delphi con una bd firebird y para introducir datos uso unos edits y una dbnav.

la tabla de la bd tiene un autonumerico con un generador y un tigger y funciona bien, imaginemos que voy en el registro 17, le doy a nuevo, me arrepiento y le doy cancelar, pues bien, la proxima vez que haga un cliente nuevo el me genera el 19 y el 18 no, como puedo hacer para que cuando cancele la introduccion de un registro no me sume el generador.
saludos.
Responder Con Cita
  #2  
Antiguo 07-04-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Por una parte:

Set Generator Nombre_Generador To XXX

Sin embargo la labor principal del generador no es la de generar números consecutivos.

Una solución puede ser general el número despues de insertar, para evitar que haya cancelaciones, otra valerse de un contador situado en una tabla auxiliar...

Un Saludo.l
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 08-04-2010
Avatar de erickahr
erickahr erickahr is offline
Miembro
 
Registrado: feb 2010
Posts: 94
Poder: 15
erickahr Va por buen camino
Cool Tarde, tarde...

Antes que me digan que estoy cinco años tarde, aclaro, andaba buscando otra cosa y por casualidad llegue aqui. Al ver los posts del hilo, recordé que tengo algo similar a lo que mencionan, solo que no ocupo generadores; para insertar un nuevo registro en cierta tabla lo hago mediante un StoredProc, se que no le servira para nada a quien inicio el hilo, pero ojala le sea de utilidad a alguien más, aqui esta el codigo .

Código SQL [-]
CREATE PROCEDURE SP_MOVIMIENTOS (
    idajuste numeric(15,0),
    fecha date,
    movimiento varchar(70),
    cargo numeric(15,2),
    ajusto varchar(70),
    valido smallint,
    idtienda numeric(15,0),
    idmov numeric(15,0))
as
declare variable ultimo numeric(15,0);
begin
Select max(idmov)+1 from movimientos into ultimo;
if (ultimo>=0) then
    idmov=ultimo;
insert into movimientos (idajuste, idmov, fecha, movimiento, cargo, ajusto, valido, idtienda)
values (:idajuste, :idmov, :fecha, :movimiento, :cargo, :ajusto, :valido, :idtienda);
end^

Aqui dejo el codigo que utilizo en delphi al guardar el nuevo registro, y como notarán el parametro IDmov se lo paso en el StoredProc y en delphi solo mando los demás parametros.

Código Delphi [-]
 With spMvtos Do
          Begin
          ParamByName('idajuste').AsInteger:=idajuste;
          ParamByName('fecha').AsDate :=Date();
          ParamByName('idmov').AsInteger  :=0;
          ParamByName('movimiento').AsString :='AJUSTE DE INVENTARIO';
          ParamByName('cargo').AsFloat:=xImporte;
          ParamByName('ajusto').AsString :=Ajusto;
          ParamByName('valido').AsInteger:=1;
          ParamByName('idtienda').AsInteger:=frDatos.idTienda;
          ExecProc;
          end;
__________________
Nadie puede separar su fe de sus actos, o sus creencias de sus afanes

Última edición por erickahr fecha: 08-04-2010 a las 19:22:27. Razón: falto el codigo de delphi
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:13:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi