Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Registro Nuevo, Porque se va al Final???? (https://www.clubdelphi.com/foros/showthread.php?t=24099)

AGAG4 08-08-2005 19:08:46

Registro Nuevo, Porque se va al Final????
 
Uso Delphi 6 SPII, IBX 6.08, FireBird 1.52

Desde que empece hacer una Aplicación de Facturación me tope con este Detalle, lo que pasa es que tengo una relación Maestro Detalle en la captura de Facturas, en esta relación uso el componente IBDataSet y en el Detalle tengo en la propiedad SelectSQL lo siguiente:
Select * from TDETALLE
where tipomov=:tipomov and
folio=:folio

Llave Primaria del Detalle es : TipoMov+Folio+Indice, donde TipoMov es de tipo VarChar de Longitud 2, Folio e Indice son de Tipo Integer.

Por supuesto en la propiedad DataSource del Detalle lo tengo enlazado al DataSource del Maestro, ahora Bien, mi problema es que Cada vez de que INSERTO un Registro entre OTROS registros este Nuevo Registro se Posiciona al Final cuando el dbGRID(enlazado al ibDataSet-Detalle) manda un Post al Detalle, ahora y por lo siguiente cuando mandan a imprimir no sale en la posición en donde se Inserto el Registro, ya se que esto es Natural en una Base de Datos, pero debe de haber algún truco al respecto, he pensado en cambiar el tipo de dato del campo INDICE de Integer a Flotante, para que cuando se inserte un registro entre otros, automaticamente me de el siguiente, es decir si se inserta entre el 2 y el 3, entonces que el indice sea 2.1., ya se que yo sólo me estoy dando la Probable Solución, el problema aqui es que sólo pueden Insertar 9 registros entre otros, pero ocupo que alguien me de más opciones para no entrar de lleno a esta....

Agradezco cualquier sugerencia.

Crandel 09-08-2005 04:57:30

usa ORDER BY para ordenarlo como te guste

Cabanyaler 09-08-2005 08:03:54

... Dataset.Insert <> Dataset.Append

:D

AGAG4 09-08-2005 17:28:29

mmmm
 
Es por eso que no uso el Order By, me mueve el Registro Nuevo a otra posición, es lo que no quiero que se mueva que se quede donde lo insertaron y ya Intente con Insert y Append....

Gracias por sus comentarios....

Crandel 09-08-2005 19:46:11

En interbase, como en la mayoría de los motores de base de datos, no puedes tener en cuenta el orden en que se insertaron, dado que se hacen de la forma que mas convenga en el momento de la inserción, no existe el orden como tal.

El append y el insert por lo tanto son lo mismo.

si te interesa el orden en que se insertaron, crea un indice incremental y lo ordenas por este valor.

vtdeleon 09-08-2005 23:17:40

Saludos

Cita:

Empezado por AGAG4
si te interesa el orden en que se insertaron, crea un indice incremental y lo ordenas por este valor.

Creo que AGAG4 desea lo contrario

rtorioa 09-08-2005 23:27:15

guardate la hora de la maquina en cada insercion y ordenalo por hora

Crandel 10-08-2005 03:07:36

Cita:

Empezado por vtdeleon
Creo que AGAG4 desea lo contrario

que es lo contrario? invertido?

basta con ordenarlo de forma decreciente.

vtdeleon 10-08-2005 03:36:33

Saludos

Cita:

Empezado por AGAG4
que es lo contrario? invertido?

No.
Ej: Si tengo una consulta que arroja 10 registros, y se está posicionado en el registro 4 e intento insertar un registro el cual se quiere en la posicion 5, no al final(11) .

Eso fue lo que entendi de AGAG4
NO??:confused:?

Crandel 10-08-2005 07:44:11

si, parece que eso es lo que necesita, parece que lei muy por arriba el primer mensaje :D

AGAG4 no te ayuda poder agruparlos tipomov o por folio?


La franja horaria es GMT +2. Ahora son las 16:18:42.

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