PDA

Ver la Versión Completa : Registro Nuevo, Porque se va al Final????


AGAG4
08-08-2005, 19:08:46
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
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

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
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

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?