problema de posicionamiento en tabla
Hola amigos estoy implementando zeoslib en Delphi XE y resulta que tengo una tabla con códigos numéricos del 1 al 16, mi problema es que cuando hago tabla.first para posicionarme al inicio y empezar a recorrerla, el componente zeos por alguna razón que no entiendo se posiciona en el segundo registro de la tabla, después accesa el primero, después el tercero y así sucesivamente. Ejemplo: cuando despliego la lista de códigos me queda: 2,1,3,4,5,6,... en vez de 1,2,3,4,5,6,...
Ya he intentando re-indexar y hacer vacum a dicha tabla en el pgAdmin pero igual me la recorre de esta forma tan extraña. Anteriormente usaba el componente de PostgresDAC de MicroOlap y no tenía ese problema. Agradezco cualquier ayuda que me puedan brindar! |
¿Pero qué sql estás ejecutando?
Tú decides el orden. En tu caso será algo así:
|
Gracias Casimiro! yo estoy recorriendo la tabla con un ciclo porque no estoy utlizando un dblist si no un objeto lista corriente. El código es sencillo:
|
Definitivamente coincido con Casimiro, el problema es el orden
Como insertaste los registros? Como los recuperas? En el codigo de ejemplo que es "Tabla"? Hablas de un objeto lista corriente y no un, ¿ dblist ? Que es un "objeto lista corriente"? Yo interprete TList, o TList<T> Como se llena este objeto lista corriente? como insertas los registros? |
Qué tal.
¿Has probado con un TZQuery? |
Quitas el componente tabla y pones un componente query. En su sentencia select pones lo que te he escrito antes, y aprovechando tu código, quedaría así:
Cita:
|
Para completar un poco...En Bases de datos Sqls, Al hacer un "tabla.insert", no se guarda al final de tabla. Esto se hace por eficiencia, no tiene sentido irse al final de la tabla para insertar y después volver a donde se estaba.
Se busca un hueco de un registro eliminado (por ejemplo) y se inserta allí mismo. En Paradox y demás BBDD de escritorio, el "tabla.Append" sí lo inserta al final de la tabla. El "tabla.insert" lo hace donde pueda. Te recomiendo usar un tZQuery de esos con el sql : "select codig from tabla order by codig" y que hagas una rutina que usarás más de lo que crees, sobre todo si la aplicación es multiusuario.
Ahora la puedes llamar:
Saludos |
3 Archivos Adjunto(s)
Muchas gracias amigos ya logré resolver el problema mediante la propiedad "sortedfields" del TZTable, le establecí el campo codigo y autompáticamente me seteó la propiedad "IndexFieldNames" = codigo Asc y listo ahora si me despliega el TList debidamente ordenado, gracias por la ayuda! Adjunto unas imágenes para ilustrar el problema y la solución usando esta propiedad por si a alguno algún se topa con el mismo inconveniente.
Archivo Adjunto 3234 Archivo Adjunto 3232 Archivo Adjunto 3233 |
Cita:
> Doctor, doctor, todo el mundo me ignora. >> ¡Que pase el siguiente! |
La franja horaria es GMT +2. Ahora son las 01:19:45. |
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