Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   como incrementar valor en ibdatapump (https://www.clubdelphi.com/foros/showthread.php?t=92323)

SmartZooft 30-09-2017 01:26:31

como incrementar valor en ibdatapump
 
Hola a todos, estoy copiando datos de una bd a otra, la pregunta es, alquien sabe como puedo incrementar el valor de un campo? específicamente es un campo llave de tipo entero que quiero se vaya incrementando en el proceso de copiado. Me salvarían la vida!
trabajo con interbase6 y estoy haciendo el copiado con ibDatapump 3.4
ojalá me puedan ayudar, muchas gracias.

Casimiro Notevi 30-09-2017 10:24:09

Puedes tener un trigger en la base de datos que lo haga, mediante un generador. Es lo habitual.
Hay montones de ejemplos por los foros, aunque te paso un enlace de otro sitio que lo explica bien.

SmartZooft 03-10-2017 18:37:45

Cita:

Empezado por Casimiro Notevi (Mensaje 521402)
Puedes tener un trigger en la base de datos que lo haga, mediante un generador. Es lo habitual.
Hay montones de ejemplos por los foros

Gracias casimiro, lo que quiero es que suceda dentro del datapump al hacer el copiado, aún así necesito hacer ésto que comentas?

Casimiro Notevi 03-10-2017 18:43:11

Hace años que no uso ese programa, no recuerdo si tiene esa posibilidad.

SmartZooft 03-10-2017 18:49:42

Cita:

Empezado por Casimiro Notevi (Mensaje 521470)
Hace años que no uso ese programa, no recuerdo si tiene esa posibilidad.

Gracias Casimiro.

ojalá alguien me pueda ayudar, me ahorrarían mucha talacha en Delphi!

Saludos

Casimiro Notevi 03-10-2017 18:56:35

Debes hacerlo como te he dicho, es muy fácil y es lo que necesitas.
Además, ibdatapump no tiene esa opción porque acabo de ver la pantalla en su web.

SmartZooft 03-10-2017 19:02:53

Cita:

Empezado por Casimiro Notevi (Mensaje 521473)
Debes hacerlo como te he dicho, es muy fácil y es lo que necesitas.
Además, ibdatapump no tiene esa opción porque acabo de ver la pantalla en su web.

Gracias, lo que hago actualmente es usar el datapump y las tablas que cambiaron sus llaves primarias las copio con una rutina en delphi. Precisamente esas rutinas son las que me quería ahorrar porque el datampump es muy rapido.

para ser mas claros, tengo una tabla que se llama historia y era hija de la tabla clientes, entonces tenía las llaves id_cliente y id_historia, pero decidimos separarlas, entonces ahora puse a la tabla historia un campo llave llamado id_consecutivo, por lo que necesito incrementar dicho campo. Datampump lo hace muy rapido pero no encuentro cómo incrementar ese campo llave en el bombeo.

espero no haber sido muy confuso.

Casimiro, imagino que estás ocupado pero si tuvieras un ejemplo básico de lo que me sugieres te lo agradecería infinitamente.

Gracias.

Casimiro Notevi 03-10-2017 19:24:32

Cita:

Empezado por SmartZooft (Mensaje 521474)
.. un ejemplo básico de lo que me sugieres te lo agradecería infinitamente.

En mi primera respuesta te puse un enlace.
Pero puedes buscar en los foros por "generator" y encontrarás varios hilos que se ha tratado el tema.
Es muy simple, no tienes que hacer nada en delphi, solamente crear un generador en la base de datos y un trigger before insert para que lo ejecute (Todo en la BD destino).
Código SQL [-]
CREATE GENERATOR GEN_TBAPUNTES_ID;
SET GENERATOR GEN_TBAPUNTES_ID TO 0;
Código SQL [-]
/* tbApuntes */
CREATE OR ALTER trigger tbapuntes_bi0 for tbapuntes
active before insert position 0
AS
BEGIN
  NEW.CODIGOAPUNTE = GEN_ID(GEN_TBAPUNTES_ID,1);
END
Otro enlace.

SmartZooft 04-10-2017 01:01:10

Muy bien, muchas gracias por tu ayuda!!

Saludos

SmartZooft 04-10-2017 18:26:38

aquí la solución
 
Hola a todos, ya lo logré y comparto la página donde encontré cómo hacerlo...

no tengo permitido etiquetar enlaces, así que se los pongo en texto...

clevercomponents.com/products/datapump/datapumpfaqs.asp#117

si tienen duda con gusto les puedo ayudar.

Casimiro Notevi 04-10-2017 18:32:14

Cita:

Empezado por SmartZooft (Mensaje 521520)
Hola a todos, ya lo logré y comparto la página donde encontré cómo hacerlo...
no tengo permitido etiquetar enlaces, así que se los pongo en texto...
clevercomponents.com/products/datapump/datapumpfaqs.asp#117
si tienen duda con gusto les puedo ayudar.

Me alegro.
Nada que ver con el enlace que te puse y ni con el código que te he adjuntado :rolleyes:

SmartZooft 04-10-2017 19:57:30

Casimiro, me sirvió mucho lo de los generadores, al final si se usan y se crean a mano para luego usarlos en el DataPump.

te agradezco mucho la ayuda.


La franja horaria es GMT +2. Ahora son las 09:04:37.

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