Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2004
Avatar de cmgenny
cmgenny cmgenny is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo
Posts: 71
Poder: 22
cmgenny Va por buen camino
Reiniciar el Generador

Holas

Mi base de datos esta compuesta por 6 tablas tres de las cuales utilizan generadores, lo que quiero es poner el valor del generador otravez en 0 para que empiece otra vez. Borro todos los datos pero los generadores siguen en la secuencia que se quedaron.

Muchas gracias

utilizo Interbase 7
__________________
Y recueda que no hay preguntas tontas, si no, tontos que no preguntan.
Sr. Genny Cris Morillo Santos
Estudiante ING. Sistemas
Santo Domingo D.N.
Responder Con Cita
  #2  
Antiguo 26-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
set generator gen_name to int_value;

Hasta luego

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 26-04-2004
Avatar de cmgenny
cmgenny cmgenny is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo
Posts: 71
Poder: 22
cmgenny Va por buen camino
No entiendo bien

No entiendo

Que quieres que haga exactamente ponga esa linea de codigo dentro del alter table o no se bien por que ella sola no va a funcionar y disculpa que te pregunte tanto es que me gustan que me expliquen con detalles gracias
__________________
Y recueda que no hay preguntas tontas, si no, tontos que no preguntan.
Sr. Genny Cris Morillo Santos
Estudiante ING. Sistemas
Santo Domingo D.N.
Responder Con Cita
  #4  
Antiguo 26-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
hola cmgenny. Lo que te he dado es una instrucción SQL válida (al menos en interbase 6). Podes ejecutarla directamente en ibconsole, en isql, o ponerla en la propiedad SQL de un TQuery y lanzarla a la base de datos.

Si queres mas detalles, te recomiendo leer la documentación disponible de la base de datos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 13-07-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Hola.. justo estaba buscando algo por el estilo... funciona super bien desde el IBExpert... pero quisiera ejecutarla desde delphi... pero pasando el valor x, la idea es volverla al numero que yo quiera....

para tratar de cambiarle el valor estoy usando lo siguiente

IBQuery
IBTransaction

y el codigo es el siguiente

Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Set Generator "G_Orden_Numero" to Var1');
IBQ_Edit.Params[0].AsInteger := StrToInt(pOrden.Text);
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;

alguien sabe como hacerlo...

Editado:::

lo hice así...
Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Set Generator g_orden_numero to '+QuotedStr(pOrden.Text));
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;

pero tengo un error.. ya que no se como pasarle el dato de str a integer ???
__________________
BlueSteel

Última edición por BlueSteel fecha: 13-07-2006 a las 17:15:13.
Responder Con Cita
  #6  
Antiguo 14-07-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Pues utiliza bien los parámetros. Para indicarle al sql que una variable es parámetro se colocan dos puntos antes de la misma. :Var1.

Suerte.
Responder Con Cita
  #7  
Antiguo 14-07-2006
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
Cita:
Empezado por BlueSteel
lo hice así...
Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Set Generator g_orden_numero to '+QuotedStr(pOrden.Text));
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;

pero tengo un error.. ya que no se como pasarle el dato de str a integer ???
Usa lo siguiente:
Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Set Generator g_orden_numero to '+pOrden.Text);
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;
__________________
Suerte
Alejandro
Responder Con Cita
  #8  
Antiguo 18-07-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
pero se supone que el generador es de tipo numerico.... entonces el dato que le estoy pasando es una cadena string... por lo tanto no son compatibles...
__________________
BlueSteel
Responder Con Cita
  #9  
Antiguo 18-07-2006
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
Smile

Cita:
Empezado por BlueSteel
pero se supone que el generador es de tipo numerico.... entonces el dato que le estoy pasando es una cadena string... por lo tanto no son compatibles...
Si, pero lo que estas haciendo es crear un string con la instrucción SQL, en el query te quedaria asi:

set Generator g_orden_numero to 10

Es como si escribieras la orden en un entorno para sql a mano, no se si me explico bien.
__________________
Suerte
Alejandro
Responder Con Cita
  #10  
Antiguo 19-07-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
ya me funciono.. esta ok.. muchas gracias
__________________
BlueSteel
Responder Con Cita
  #11  
Antiguo 10-12-2007
Avatar de peccatum
peccatum peccatum is offline
Miembro
 
Registrado: oct 2005
Posts: 89
Poder: 19
peccatum Va por buen camino
Hola...

¿no es posible reiniciar el generador desde un trigger? lo he intentado pero me da error de "invalid token" con la cadena 'set' de "set generator ...."
Responder Con Cita
  #12  
Antiguo 31-01-2011
scorpion-salta scorpion-salta is offline
Registrado
 
Registrado: jun 2008
Posts: 5
Poder: 0
scorpion-salta Va por buen camino
Cita:
Empezado por peccatum Ver Mensaje
Hola...

¿no es posible reiniciar el generador desde un trigger? lo he intentado pero me da error de "invalid token" con la cadena 'set' de "set generator ...."
si se puede, la solucion es en el codigo que te da error, hacer lo siguiente:

execute statment 'set generator nom_seq restart with 0;';
Responder Con Cita
  #13  
Antiguo 31-01-2011
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
@scorpion: no se si aún @peccatum está esperando respuesta luego de 3 años... de cualquier manera, el hecho de querer re-iniciar un generador desde un trigger no huele bien, creo que habría que revisar ese diseño.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #14  
Antiguo 31-01-2011
scorpion-salta scorpion-salta is offline
Registrado
 
Registrado: jun 2008
Posts: 5
Poder: 0
scorpion-salta Va por buen camino
Cita:
Empezado por jachguate Ver Mensaje
@scorpion: no se si aún @peccatum está esperando respuesta luego de 3 años... de cualquier manera, el hecho de querer re-iniciar un generador desde un trigger no huele bien, creo que habría que revisar ese diseño.
Estoy de acuerdo con vos, en que es tarde, pero bueno, a lo mejor alguien tenia el mismo problema, como yo hace un par de dias, y lo de tener que reiniciar secuencias, es cuestion de gustos, algunos lo hacen en la aplicacion y otros en la base de datos, o directamente se trata de evitar esto.

En mi caso, una base sencilla, en la cual necesitaba un contador secuencial que se reinicie cada cierta condicion. Y me parecio mejor incorporarlo en la base de datos, ya que es una aplicacion sencilla de un usuario no mas. La otra solucion era hacerlo en la aplicacion. Pero me intereso hacer cosas con secuencias y aprovechar un poco mas la potencia de este motor.
Responder Con Cita
  #15  
Antiguo 01-02-2011
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Talking Resetear Generador ...

cmgenny:

No se si ya hayas resuelto tu problema.... Pero aquí te dejo un código que hice para resetear un generador a cero... Lo utilicé ya hace algunos años para un sistema de Control Escolar que hice. Lo bueno de este código es que lo puedes utilizar dentro de un procedimiento almacenado o corriendo la sentencia SQL desde cualquier lenguaje de programación.
Código SQL [-]
SELECT GEN_ID(CTRL_SEP_GEN, (SELECT (GEN_ID(CTRL_SEP_GEN, 0) * -1)
      FROM RDB$DATABASE)) FROM RDB$DATABASE
En este caso, mi generador es CTRL_SEP_GEN (sustituye este valor por el generador que quieres resetear. Funciona mas o menos asi: simplemente le resto su mismo valor.

Saludos
Gerardo Suárez Trejo
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 15:39:54.


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