FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Recuperar todos los registros en consulta
Uso Delphi 7 con firebird 1.0 a traves de ibx
tengo un problema con el IBQuery, hago una consulta tipo selec * from mitabla, pues esta tabla solo tiene unos cuantos registros, pero resulta que el IBQuery no me trae todos los registros sino que solo uno, y necesito que los traiga todos de la base de datos en forma automatica, actualmente la solucion que hice fue hacer lo siguiente: query.last; query.first; de esta manera ya accedo a todos los registros, pero me incomoda este comportamiento, la cantidad de registros no es mucha, a lo sumo 10. como puedo hacer para que el componente recupere todos los registros de una vez?
__________________
Saludos Douglas Cruz |
#2
|
||||
|
||||
Todos los dataset, cuando se los consulta, POR SUERTE paginan los resultados, es decir solo te traen los resultados de la primer página de datos al menos que exigas el resto como lo haces con el mètodo Last. La ventaja de esto es ganar velocidad y recursos ya que en la muchos casos solo necesitamos el resultado de los primeros registros...
Suerte!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Cita:
// Saludos |
#4
|
|||
|
|||
Si bien es cierto que se traen paginas de registros, como mínimo se traeran los registros necesarios para rellenar las posibles lineas de un TDBGrid (si se visualiza con este). O sea, que por mucho que se trajera por pagina 1 registros (cosa que dudo a no ser que tenga muchos campos o es tos sean muy grandes), si el TDBGrid puede visualizar 20 registros, se traeria 20 paginas, es decir, 20 registros
No se que componente estara utilizando para la visualizacion, yo he explicado el caso del TDBGrid Tambien podria ser que se haya modificado la propiedad BufferChunks del TIBQuery |
#5
|
||||
|
||||
Buenas,
Cita:
Todo lo que digo es en base a lo que escribe Ian Marteens en "La Cara Oculta de Delphi 6" Los TTable (BDE) trae los registros incrementalmente según los necesitamos. Los TQuery (BDE también) devuelven todos los registros. En ADO, si utilizamos los cursores estáticos en el cliente (los que recomienda el libro) se traen de golpe todos los registros de la consulta. En DBExpress no lo recuerdo, pero como en teoría no hay caché supongo que los registros no viajan hasta el cliente a menos que no tengamos un ClientDataSet. Ahora mismo no sé como lo hace el ClientDataSet, pero creo que puede configurarse para que pagine, aunque por defecto no lo hace (repito, no esto seguro) Imagino que dado que TDataSet es una clase abstracta no define este comportamiento sinó que deja que sus descencientes lo implementen. Es solo una suposición, no he mirado el código fuente (Dios me libre ) Saludos! |
#6
|
||||
|
||||
Es verdad, falta información a mi respuesta y esta mal decir Todos los DataSets, por lo que dice marcsc, pero no olviden leer la PD... Mismo no se porqué contesté porque nunca he usado IB.... Y esto no solo depende del dataset sinó de la forma de armar los cursores que tenga el motor de base de datos.
Recordemos que en BDE podemos configurar en el alias el ROWSET SIZE que nos dice Specifies the number of rows to retrieve from the server in a single fetch Cita:
Tengan en cuenta un detalle: Este hilo lo postee el sábado por la noche desde un boliche/club .. ustedes imaginen la situación.. y me sorperde que solo tenga una falta de ortografía!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#7
|
||||
|
||||
Cita:
Saludos! |
#8
|
||||
|
||||
Fue mas curiosidad que otra cosa... A quien se le ocurre poner una PC con conexión a internet en ese lugar????... Y ¿A que otro sitio puedo entrar?... lo que si, veo que no es productivo, la próxima ves, me voy a contener...
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#9
|
||||
|
||||
No te contengas, así descubriremos poco a poco los secretos oscuros de tu vida privada
Saludos compañero! |
#10
|
|||
|
|||
bueno, en realidad el IBQuery lo uso para que su resultado sea la fuente de unos campos lookup de otro dataset, asi que no lo presente en pantalla directamente...
de todas maneras existe manera de decirle al ibquery que traiga todo? que hay del BufferChunks? no uso nada de BDE ni ado, solo IBX
__________________
Saludos Douglas Cruz |
|
|
|