• Domingo 17 de Noviembre de 2024, 20:29

Autor Tema:  Campo Autonumerico Sql  (Leído 12600 veces)

rronald205

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Campo Autonumerico Sql
« en: Lunes 6 de Septiembre de 2004, 16:07 »
0
Saludos, tengo el siguiente problema como hago para saber cual es el valor del campo autonumerico de un registro nuevo antes de guardarlo

Snaft_J1

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
    • http://www.hispahacker.com
Re: Campo Autonumerico Sql
« Respuesta #1 en: Lunes 6 de Septiembre de 2004, 17:31 »
0
:D  pues la verdad, personal mente no creo que puedas jejeje...
dirctamente no..., por que es un numero que se genera en consecuencia al anterior.
ahh, a no ser que leas el api del DMO de sql.

lo normal es que leas el ultimo existente y en base ha el sepas cual sigue no?
 <_<
El Conocimiento y el  Saber te Hacen un ser Libre!!..
"Ando En Busca De Conocimiento!..."
Visita mi Web GoldByte

Sagma

  • Miembro MUY activo
  • ***
  • Mensajes: 390
  • Nacionalidad: bo
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #2 en: Lunes 6 de Septiembre de 2004, 17:52 »
0
Hola Snaft_j1 :

Sabes en mi aplicaciòn que realice, tengo un autonumerico, pero no puedo desplegarlo o saber el ultimo numero digitado.

Todo se inserta bien, en la tabla esta ok, pero en la aplicaciòn ??, no muestra o desplega el numero.

Vas ha disculpar mi ignorancia, pero son mis primeros pasos que doy en lo que se refiere a aplicaciònes Visual.

Gracias por las molestias


Sagma  :)
Sagma

Snaft_J1

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
    • http://www.hispahacker.com
Re: Campo Autonumerico Sql
« Respuesta #3 en: Lunes 6 de Septiembre de 2004, 18:05 »
0
wenas sagma.
ya probaste con.

Código: Text
  1.  
  2. oDsTabla.Tables[0].Rows.Count
  3.  

esto siempre y cuando hayas refrescado un dataset o no set cualquiera de sus familiares.

o un datagrid todo apartir de ayi .Tables[0].Rows.Count seria lo mismo.
y te da el numero de filas existentes que por consecuencia sera el mismo que el de tu ultimo campo auto-numerico verdad?
bueno no es la unica manera pero si la mas simple :D
El Conocimiento y el  Saber te Hacen un ser Libre!!..
"Ando En Busca De Conocimiento!..."
Visita mi Web GoldByte

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #4 en: Lunes 6 de Septiembre de 2004, 20:54 »
0
Snaft_J1 te equivocas en esa parte de que te da el ultimo numero del autonumerico.

ahi lo que haces es solo contar los registros existentes nada que ver con el autonumerico.

por eujemplo si tienes 10 reeistros con campo autonumero ID

seria

1-2-3-4-5-6-7-8-9-10

hasta ahorita si hacemos lo que tu dices si funciona pero es por el contenido de la tabla

ahora supon que borremos el 2-3-5 quedaria

1-4-5-6-7-8-9-10

Dime,, tu codigo sigue funcionando???

Lo mejor creo yo es sacar el ID mayor mediante consulta SQL y a ese le sumas uno ese seria el ID del nuevo rgistro autonumerico en ese momento de la consulta, ya quesi habolamos de una DB que es manipulada por varios usuarios probablemente en lo que le des la alta alguien ya abra insertado un registro.

Todo es cuestion de saber manipular ese tipo de detalles.
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->

rronald205

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #5 en: Lunes 6 de Septiembre de 2004, 21:34 »
0
A lo mejor no me explique lo suficientemente bien: tengo una base de datos en sql 7.0 y en ella una tabla donde tengo un campo autonumerico, ok. estoy programando en vb6 y tengo una variable de tipo adodc.recordset conectada a esa base datos.
en el momento que voy a guardar un registro ejemplo:

adodc1!Nombre = Nombre.text
adodc1!Apellido = Apellido.text
adodc1!Direccion = Direccion.text
adodc1.update

antes del update yo quiero saber cual es el autonumerico que le asigna a este registro.

rronald205

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #6 en: Lunes 6 de Septiembre de 2004, 21:37 »
0
Por favor ayudenme ......... necesito saber esto :unsure:

Snaft_J1

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
    • http://www.hispahacker.com
Re: Campo Autonumerico Sql
« Respuesta #7 en: Lunes 6 de Septiembre de 2004, 22:08 »
0
senzao18
sabes que es lo que hace SQL-SERVER internamente?
pues si lo sabes,  :P  es cierto.
pero solo si se tienen en cuenta ese tipo de detalles :D
pero weno tambien se puede hacer con un QUERY
pero sabes tu tambien te equivocas y sabes por que ?
por que SQL-SERVER y ORACLE guardan los indices en otros lugares en este momento no recuerdo bien pero si te fijas lo que dices es cierto pero a la vez falso,
en cuanto ha eso de obtener el ultimo registro, debido a que si el que es el ultimo registro en realidad era el penultimo antes de un DELETE el proximo registro seria la continuacion del que se elimino y no del que existe, lo que dices y lo que digo es lo mismo pero desde puntos diferentes o formas, ademas sol son aplicables ha Manejadores de BD y no a motores.

es decir:
tengo los siguientes registros:
1-2-3-4

aplico un DELETE del ultimo me quedaria asi:

1-2-3

y si aplico in INSERT  :devil: me quedaria asi:
1-2-3-5 :D
lo ves lo mejor es que uses las apis DMO y ellas te daran el registro real ademas el que lo envia es SQL-SERVER y no tienes que tomarlo tu?, solo se lo preguntas y el te responde.

ademas si estas en vb 6.0, tambien es valido lo dicho.

 :blink:  por cierto rronald205 que no existe un Subforo de vb 6.0?

PD: espero haber sido claro, y de ayuda... :D
El Conocimiento y el  Saber te Hacen un ser Libre!!..
"Ando En Busca De Conocimiento!..."
Visita mi Web GoldByte

rronald205

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #8 en: Lunes 6 de Septiembre de 2004, 22:36 »
0
snaft_j1 de verdad no se si abra otro sub-foro, si llegas a saber por favor me informas. ahora como puedo hacer para obtener el autonumerico a traves del API. podrias darme algunos codigos que me sirvan de guia

Snaft_J1

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
    • http://www.hispahacker.com
Re: Campo Autonumerico Sql
« Respuesta #9 en: Martes 7 de Septiembre de 2004, 06:32 »
0
Este es el link para el subforo devido, claro si lo estas trabajando en vb 6.0.

sobre el API.. ummm.
 :(  no no tengo codigos,  :D pero en las ayudas de sql-server esta. por que ayi fue donde aprendi ha manejar el DMO y otros para SQL-SERVER, claro esta que yo uso SQL-SERVER 2000 y tu estas en la version 7.0 la he visto y tuene grandes cambios.
en mi SQL esta la informacion correspondiente en las ayudas.

verifica ahi. busca por el contenido el subtema "Building SQL Server Applications",(Generar aplicaciones para SQL Server):ph34r:  alli obtendras los ejemplos basicos de su funcionalidad API., lo demas queda a tu logica de programacion  :).

lee la documentacion de tu motor de BD's eso es lo que te recomiendo jejeje.

es mas completo que lo que yo te puedo dar, ademas es lo mejor, no acostumbro postear fuentes  :whistling: , cuando pido ayuda solo solicito Documentacion que me pueda servir para aprender mas...

Enjoy it..
El Conocimiento y el  Saber te Hacen un ser Libre!!..
"Ando En Busca De Conocimiento!..."
Visita mi Web GoldByte

Khuzu dum

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #10 en: Martes 19 de Julio de 2005, 13:57 »
0
Hola forer@s, tengo el mismo problema que el compañer@ rronald205 pero con algunas variantes:

1.- Mi base de datos esta en Access 2003.

2.- Quiero saber el autonumerico pero no antes de que sea insertado el registro en la base de datos, por lo que supongo que sera más fácil.

Creo que seria hacer una consulta y mostrar el valor del campo en el registro concreto, pero no se hacerlo sin un datagrid, y eso es precisamente lo que necesito, realizar un código que me devuelva el autonumérico para poder ponerlo en una variable.

Gracias de antemano por la ayuda, en caso de que me ayudeis, y en caso contrario gracias por haberos molestado en leer mi mensaje.

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #11 en: Martes 19 de Julio de 2005, 15:15 »
0
Hola,

En caso de que necesites conocerlo despues de la insert, podrias ejecutar una sentencia como esta despues de la insert:

SELECT MAX(campo_autonumerico) FROM tabla


DE todas maneras, en SQL server existe un truco para obtener ese codigo a partir de la sentencia de insercion:

INSERT INTO ..... ; @@IDENTITY

Despues de la sentencia de Insert pones un ";" y despues "@@IDENTITY". Esto devuelve la identidad del ultimo registro insertado. Lo vuelvo a decir esto es de SQL Server y no se si funcionara en acces.

Saludos y suerte.
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

Khuzu dum

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #12 en: Lunes 25 de Julio de 2005, 08:39 »
0
Gracias a tod@s por responder, al final lo he solucionado de la forma más tonta, hago una consulta como comentaba el compañero Güorker
, pero el problema era que no lo podia meter en un string, no se por que; y al final lo que hice fue meterlo en un textbox, y de éste guardarlo en una variable, dejando la propiedad visible a false.

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Campo Autonumerico Sql
« Respuesta #13 en: Lunes 25 de Julio de 2005, 19:04 »
0
Como dicen in méxico inguesu todo lo que duro en resolverse una duda :S:S:S:S:S :hola:  :smartass:  :smartass:  :comp:  :comp:
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->