https://foro.gambas-es.org/viewtopic.php?f=1&t=809
-----------------------------------
jousseph
Miercoles, 28 Julio 2010, 16:18

Como Colocar A Una Persona Con Un Codigo Unico Al Llenar El Registro Sqlite
-----------------------------------
Hola compañeros sigo insistiendo no he podido aclarar como colocar a una persona autonumerica en una base de datos lo que hecho es lo siguiente que yo mismo le agrego el codigo y se guarda y todo pero no creen ustedes que la misma maquina lo debe hacer? lo que quiero es que cuando yo introduzca la primera persona la misma maquina le agregue su propio codigo no me importa si es desde un 0 a 1000 pero quiero que  ella misma lo haga para yo poder hacer las consultas gracias.


-----------------------------------
Invitado
Miercoles, 28 Julio 2010, 19:01

Re: Como Colocar A Una Persona Con Un Codigo Unico Al Llenar El Registro Sqlite
-----------------------------------
No entiendo nada de SQL, pero te doy unas ideas para introducir un número:

Usar Rnd:

[code linenumbers=false syntax=gambas]Dim PersonCode as integer

PersonCode = Round(Rnd(0,0,1000,0))[/code]

Como ves, son valores Float, por lo que sería mucho más extenso, yo puse la función Round ya que dijiste que debía ser entre 0 y mil. Tendrías además que escribir un pequeño algoritmo para ver que no exista ya ese número. 
Ahora, un número aleatorio no haría más que complicarte la vida para encontrar a una persona haciendo la consulta a la DB. Quizás lo mejor sea...

Idea 1) Arrays, cada uno con cada dato. Eso haría que puedas asimilar por ejemplo ArrZero1[5] con ArrOne[5], de forma que esté todo "conectado". Es algo que llamo "Quick & Dirty"

Idea 2) Generar un número a partir del nombre de persona.

Idea 3) ¿Es necesario totalmente un número? Quizás puedas usar otro tipo de identificación.

Como he dicho, no soy ningún experto, así que puede que haya soluciones mucho mejores. Saludos!


-----------------------------------
jguardon
Miercoles, 28 Julio 2010, 20:43

Re: Como Colocar A Una Persona Con Un Codigo Unico Al Llenar El Registro Sqlite
-----------------------------------
Si tienes declarado un campo autonumérico en tu tabla de base de datos, bastaría con insertar un valor vacío (o NULL, depende del motor de BD) en dicho campo, en la misma consulta que uses para insertar tus datos. Así, con cada nuevo insert, ese número iría incrementándose automáticamente. A mi me funciona al menos en sqlite3.

Lo que debes saber, es que cuando borres un registro, quedará un hueco en ese punto y la numeración dejaría de ser correlativa. No lo sé muy bien, pero creo que algunos motores de base de datos pueden detectar ese hueco y llenarlo con el número faltante en el siguiente insert.

Otra vez al menos en sqlite3, no es posible reordenar (o mejor dicho, volver a crear esos registros correlativos) a menos que copies tu tabla a otra temporal, borres la original, la vuelvas a crear y vuelvas a insertar los datos desde la tabla temporal, borrando ésta por último. Pero puede ser un problema o no, dependiendo del uso de ese campo autonumérico.

Saludos


-----------------------------------
jousseph
Miercoles, 28 Julio 2010, 20:45

Re: Como Colocar A Una Persona Con Un Codigo Unico Al Llenar El Registro Sqlite
-----------------------------------
MMM que bien por alli mas o menos veo como es la cosa lo que si se es que en sqlite tien a tanto la opcion como integer, como autnumerico pero me interesaria si se podra en un formulario usando texbox pero me diste una idea compañero gracias.


