 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado Invitado
|
Publicado: Jue 06 May, 2004 7:22 pm Asunto: Problema con el orden de las inserciones |
|
|
Hola:
Tengo un problema a la hora de hacer inserciones en mi base de datos Interbase. El caso es que para insertar un registro desde Builder abro la tabla con el método open, añado un registro al final con append y ya procedo a insertar los valores. El problema es que en lugar de insertarme en el último registro, me ordena la tabla por la clave primaria (el DNI de una persona). Es decir, si inserto una persona con DNI 88888888 y seguidamente otra con DNI 3333333, me pone primero la que tiene el DNI menor.
No sé como hacer para forzar a que el orden de los registros en la tabla sea el mismo que el de las inserciones, sin que se produzca esa ordenación que comentaba antes.
Si alguien me pudiese echar una mano, estaría muy agradecida puesto que mi aplicación no está funcionando correctamente debido a este problema.
Un saludo |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Jue 06 May, 2004 10:20 pm Asunto: |
|
|
Mira el SGBD está funcionando correctamente, siempre las ordenará por la clave primaria, cuando tu luego la consultas, ya estableceras el orden que a tí te haga falta en cada momento, para más información, te diré que a tí te debe dar igual como el SGBD almacene o no los datos, a ti lo único que debe importarte es que se almacenen y que no haya inconsistencias en los datos, luego a la hora de recuperarlas ya estableceras el orden que tu creas oportuno, comprendes ?
Espero que te haya aclarado un poco el asunto.
Ciao. _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
Invitado Invitado
|
Publicado: Jue 06 May, 2004 10:44 pm Asunto: |
|
|
Mmm, he entendido lo de que el SGBD funciona correctamente (no sabía que las inserciones se ordenaban por la clave primaria de la tabla ).
También sé que a la hora de hacer consultas, puedo ordenar la información como yo quiera, más o menos me manejo con eso.
El problema que tengo es que lo que estoy tratando de hacer es asignar números de socio,y para saber cuál es el número que le tengo que dar a un nuevo socio, me posicionaba en el último registro de la tabla y devolvía como número de socio uno más al de ese registro. Y claro, me fallaba por eso de la ordenación por clave primaria, porque si yo introduzco un socio con el DNI 9999999, yel último registro de la tabla siempre va a ser ese y por lo tanto, a la hora de obtener un nuevo número de socio siempre me daría el siguiente al de 9999999.
Bueno, q ya sé que no me he expresado muy claramente, es que es más facil explicarlo de palabra que escribirlo aquí.
De todas maneras, muchas gracias por vuestra atención, el foro es de mucha ayuda.
Un saludo a tod@s  |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Vie 07 May, 2004 7:20 am Asunto: |
|
|
Mira puedes usar una TQuery, o TIBQuery para una sentencia SQL parecida a esta:
| Código: | SELECT MAX(CODIGO) AS CODIGO
FROM TABLA
|
Esta consulta te devolverá una unica fila con un campo llamado codigo con el codigo más alto para ese campo, una vez leas este valor le sumas uno y ya está.
Si estás usando Interbase puedes usar generadores, para automatizar el proceso. _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|