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 11-02-2008
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
Reiniciar autonumerico SQL

Hola, a todos, temgo una tabla en SQL server y un campo que tiene tipo de datos Entero que se incrementa en uno, pero llego a 9999 y quisiera llevarlo a cero de nuevo para volver a empezar.... como lo hago?
Responder Con Cita
  #2  
Antiguo 11-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Solo una idea:

Código Delphi [-]
if SQLDataSet.Field[0].AsInteger = 9999 then
    begin
       Edit1.Text := '0';
    End;

Aunque debo decir que debes tratar de explicar la razón del por qué quieres llevarlo 0 de nuevo, asi habra mas soluciones y una ayuda mas rapida.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 11-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Hola jocey, realmente no sé que estoy yo haciendo acá, si de SQL server, no sé nada. Pero quisiera expresarme, haciendo unas ligeras aclaraciones.
Primero: No especificas si el campo es autonumerico, o los valores los asignas por tu propia cuenta. Estos dos escenarios tendrán dos soluciones distintas.

Por otro lado, quiero aclarar a mi apreciado amigo enecumene, que aprecio sus respuestas por la forma en que las plantea, fácil y rápido. Pero aveces se te escapan detalles o detallazos que siempre es bueno tener en cuanta y plantearlos en tus respuestas. No lo vayas a tomar a mal, enecumene. Solo es una observación que te ago. Lo digo por el código que posteastes anteriormente, que estoy casi seguro de que no funcionará a como uno lo esperaría.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 11-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por D&W Ver Mensaje
Hola jocey, realmente no sé que estoy yo haciendo acá, si de SQL server, no sé nada. Pero quisiera expresarme, haciendo unas ligeras aclaraciones.
Primero: No especificas si el campo es autonumerico, o los valores los asignas por tu propia cuenta. Estos dos escenarios tendrán dos soluciones distintas.

Por otro lado, quiero aclarar a mi apreciado amigo enecumene, que aprecio sus respuestas por la forma en que las plantea, fácil y rápido. Pero aveces se te escapan detalles o detallazos que siempre es bueno tener en cuanta y plantearlos en tus respuestas. No lo vayas a tomar a mal, enecumene. Solo es una observación que te ago. Lo digo por el código que posteastes anteriormente, que estoy casi seguro de que no funcionará a como uno lo esperaría.

Saludos.
No te preocupes amigo D&W, no lo tomo a mal y nunca lo hare, por tanto, por algo inicié con esta oración:

Cita:
Solo una idea:
o sea, era mas una idea no una solución, solo que no sabia en que sentido y como y en que momento o por donde el quiere reiniciar el conteo.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 11-02-2008
gendelphi gendelphi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Tlaxcala Mexico
Posts: 73
Poder: 21
gendelphi Va por buen camino
Una forma muy general de hacerlo sin importar que base de datos uses sería:
1. Tener una tabla desde la que obtengas el siguiente número a asignar.
2. Crear un trigger BEFORE INSERT para la tabla en la que usas el numero consecutivo. Dicho trigger es quien se encargaría de recuperar el siguiente número, asignarselo al campo que quieres, incrementar en uno el número consecutivo y verificar si ya llegó al límite, para entonces inicializarlo en 1.

No se SQL Server, pero la esencia de la idea sería algo asi:

Código SQL [-]
CREATE TRIGGER  establece_consecutivo FOR mi_tabla
BEFORE INSERT
AS
  DECLARE VARIABLE c INTEGER;
BEGIN
  SELECT siguiente
  FROM tabla_contador
  INTO :c;

  NEW.numero_consecutovo = c;
  c = c+1;
  IF (c = 5000) THEN
    c = 1;
  UPDATE tabla_contador
  SET siguiente = :c;
END
Responder Con Cita
  #6  
Antiguo 12-02-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
No te preocupes amigo D&W, no lo tomo a mal y nunca lo hare, por tanto, por algo inicié con esta oración:



o sea, era mas una idea no una solución, solo que no sabia en que sentido y como y en que momento o por donde el quiere reiniciar el conteo.

Saludos.
No quiero entrometerme, pero voy a dar mi punto de vista: Las respuestas de Enecumene normalmente dan con una solucion acertada, pero lo que me queda mas que claro, es que el que pregunta no puede esperar que le respondan su duda cuando esta no esta correctamente planteada o de plano carece de informacion, y ah es en donde mas de acuerdo con enecumene estoy, le respondes a manera de "aproximacion" y para que se de cuenta la gente de que la respuesta normalmente va de acuerdo a la pregunta.
Saludos
Responder Con Cita
  #7  
Antiguo 12-02-2008
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Cita:
Empezado por jocey Ver Mensaje
Hola, a todos, temgo una tabla en SQL server y un campo que tiene tipo de datos Entero que se incrementa en uno, pero llego a 9999 y quisiera llevarlo a cero de nuevo para volver a empezar.... como lo hago?
De todas formas, la pregunta no me parece tan mal planteada.

Ha dicho que es un tabla de SQL Server con tipo de dato entero, y en el título del mensaje ha puesto que es autonumérico. Lo que quiere lograr está claro, puede que hallan otros detalles que nos puedan parecer interesantes de aportar, pero me parece que ha intentado dar todos los que ha visto necesarios.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #8  
Antiguo 12-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por juanelo Ver Mensaje
No quiero entrometerme, pero voy a dar mi punto de vista: Las respuestas de Enecumene normalmente dan con una solucion acertada, pero lo que me queda mas que claro, es que el que pregunta no puede esperar que le respondan su duda cuando esta no esta correctamente planteada o de plano carece de informacion, y ah es en donde mas de acuerdo con enecumene estoy, le respondes a manera de "aproximacion" y para que se de cuenta la gente de que la respuesta normalmente va de acuerdo a la pregunta.
Saludos
Juanelo, en ningún momento critique las respuestas de enecumene en forma general, hacía referencía al código que escribió al inicio de este post, que a como se lo dije, me parecería que contenía un bug. No vayas a pensar que tomo a mal el apoyo que haz dado a enecumene, tus puntos son validos, pero a como de alguna forma había dicho anteriormente, para cada escenario hay una solución distinta. Gabo mencionó que jocey había dado suficiente información relevante, sin embargo se le escapó algo, que fue la información que le solicité a jocey, sobre especificar si el campo era autonumerico o un entero normal al que le asigna su valor manualmente.

Obviamente, nadie está obligado acá a dar algo, ya sean ideas o soluciones, cualquiera que fuera el tipo de aporte, debemos estar contentos de participar en este maravilloso club, en la forma que sea, pidiendo o dando ayuda, que sin duda, la gran mayoría ha estado en los dos bandos, incluyendo a los más experimentados.

Nuestra voluntad de ayudar, en ningún momento, nos puede hacer pensar que deberíamos ser inmunes a la critica. Todo lo contrario, de las discusiones es que surgen las grandes ideas.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #9  
Antiguo 12-02-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por D&W Ver Mensaje
Juanelo, en ningún momento critique las respuestas de enecumene en forma general, hacía referencía al código que escribió al inicio de este post, que a como se lo dije, me parecería que contenía un bug. No vayas a pensar que tomo a mal el apoyo que haz dado a enecumene, tus puntos son validos, pero a como de alguna forma había dicho anteriormente, para cada escenario hay una solución distinta. Gabo mencionó que jocey había dado suficiente información relevante, sin embargo se le escapó algo, que fue la información que le solicité a jocey, sobre especificar si el campo era autonumerico o un entero normal al que le asigna su valor manualmente.

Obviamente, nadie está obligado acá a dar algo, ya sean ideas o soluciones, cualquiera que fuera el tipo de aporte, debemos estar contentos de participar en este maravilloso club, en la forma que sea, pidiendo o dando ayuda, que sin duda, la gran mayoría ha estado en los dos bandos, incluyendo a los más experimentados.

Nuestra voluntad de ayudar, en ningún momento, nos puede hacer pensar que deberíamos ser inmunes a la critica. Todo lo contrario, de las discusiones es que surgen las grandes ideas.

Saludos.
De hecho si lo hubieras hecho creo que se vale, siempre y cuando sea de la manera correcta y constructiva. Mi comentario no iba encaminado a si lo que dijiste fue una critica o no (insiste que se vale), sino a que algunas veces la gente pregunta cosas como: "mi programa no compila, ¿que estoy haciendo mal", como puedes responder de manera directa esta pregunta?. En fin D&W, espero no hayas tomado a mal mi comentario.
Saludos.
Responder Con Cita
  #10  
Antiguo 12-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por juanelo Ver Mensaje
De hecho si lo hubieras hecho creo que se vale, siempre y cuando sea de la manera correcta y constructiva. Mi comentario no iba encaminado a si lo que dijiste fue una critica o no (insiste que se vale), sino a que algunas veces la gente pregunta cosas como: "mi programa no compila, ¿que estoy haciendo mal", como puedes responder de manera directa esta pregunta?. En fin D&W, espero no hayas tomado a mal mi comentario.
Saludos.
No, para nada.

Lo único que no entiendo es lo que dices:
Cita:
Empezado por juanelo Ver Mensaje
De hecho si lo hubieras hecho creo que se vale, siempre y cuando sea de la manera correcta y constructiva.
Saludos.
¿Qué hubiera hecho?
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #11  
Antiguo 12-02-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por D&W Ver Mensaje
No, para nada.

Lo único que no entiendo es lo que dices:

¿Qué hubiera hecho?
Que tal D&W, perdona que no haya sido especifico, me refereria a que si hubieras hecho una critica al comentario de enecumene (solo al comentario de este hilo, no en general a todos sus comentarios) no hubieras actuado mal ni mucho menos, ya que una critica bien hecha y constructiva es siempre bienvenida.
Responder Con Cita
  #12  
Antiguo 12-02-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por juanelo Ver Mensaje
Que tal D&W, perdona que no haya sido especifico, me refereria a que si hubieras hecho una critica al comentario de enecumene (solo al comentario de este hilo, no en general a todos sus comentarios) no hubieras actuado mal ni mucho menos, ya que una critica bien hecha y constructiva es siempre bienvenida.
Bueno, no sé si me has mal interpretado o, seguramente fui yo quien no se dio a entender claramente. En ningún momento hice critica general a enecumene, al contrario, siempre le he notado su deseo de ayudar.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #13  
Antiguo 12-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Vale chicos, no se preocupen, como ya le habia dicho a D&W anteriormente que no lo habia tomado a mal sus comentarios y que nunca lo iba a hacer, al contrario, siempre son bienvenidas, ya sean critica o no, incluso si hubiera sido critica tampoco lo hubiese tomado a mal ya que fue constructiva y observadora, de lo contrario el asunto fuera diferente, aqui hay un dicho que dice: "DE LAS CRITICAS APRENDES y VUELVES MEJOR Y MAS FUERTE".

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.

Última edición por enecumene fecha: 25-02-2008 a las 18:38:37.
Responder Con Cita
  #14  
Antiguo 12-02-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
para resetear la identidad en mssql

Código SQL [-]
DBCC CHECIDENT ('table', RESEED, 0)

sin embargo, recuerda que si tienes este campo como llave primaria o algo asi, al resetear tendras problemas solo es cuestion de que revises bien tu diseño de bases de datos
Responder Con Cita
  #15  
Antiguo 25-02-2008
jocey jocey is offline
Miembro
 
Registrado: ene 2007
Posts: 111
Poder: 18
jocey Va por buen camino
Gracias a todos

como saben yo frecuento bastante este sitio, pues me encanta, y no conozco ningun otro foro que se aproxime a la calidad de este, creo que sin este foro yo seria nada, y siempre que pongo una pregunta pongo al final que me digan si no entienden lo que planteo para volverlo explicar, de todas formas mi pregunta es que tengo un servidor SQL y una tabla con un campo que es autonumerico, osea se incrementa en uno el solo, yo eso no lo controlo desde delphi, ahora quiero borrar los valores de la tabla, pero cuando comienzo a entrar valores ese campo me comineza desde el consecutivo que tenia, como hago para que el campo empiece por uno.... es verdad lo que me decian que tengo que tener cuidado pq la tabla esta relacionada y eso traeria problemas, lo se, pero es que tengo esa duda, como hago que empieze por uno?

Gracias de antemano
Saludos Jocey
Responder Con Cita
  #16  
Antiguo 25-02-2008
danilo_candales danilo_candales is offline
Miembro
 
Registrado: nov 2007
Posts: 28
Poder: 0
danilo_candales Va por buen camino
ya te acaban de dar le respuesta

DBCC CHECKIDENT ('tu_tabla', RESEED, 1);

Si no te funciona dinos y ya veremos que otra alternativa existe. Depende de tu escenario, pero esta instrucción de SQL server funciona para lo que necesitas. Y sobre todo porque dices que haces un vaciado de "tu_tabla", así que asumo que no hay referencia alguna a ese campo como llave foránea, porque de lo contrario no podrías vaciarla así como así...

Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Reiniciar servicio Alfers Varios 3 05-09-2017 09:46:27
Reiniciar el Generador cmgenny Firebird e Interbase 14 01-02-2011 21:16:57
Reiniciar el servidor AMINOA2R Firebird e Interbase 5 18-08-2005 13:17:02
Reiniciar servicio IIS jorodgar Varios 3 16-08-2005 06:22:09
Reiniciar un ProgressBar JamesBond_Mx Varios 8 19-04-2004 21:32:11


La franja horaria es GMT +2. Ahora son las 14:23:14.


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