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)
-   -   Objetos no tradicionales (https://www.clubdelphi.com/foros/showthread.php?t=48190)

casacham 18-09-2007 13:56:07

Objetos no tradicionales
 
Hola a toda la gente del foro.
Quisiera saber si existen otros objetos que no sean ADO y de BDE para conectarse a los ficheros .mdb (bases de datoas creadas con acces)?
Por ejemplo TADOTable carga el juego de datos completamente en la memoria, y por mas que setee MaxRecords a un numero diferente de 0 y CacheSize distinto de 0 lo sigue haciendo.
Adjunto texto de ayuda para aclarar de que estoy hablando


Código Delphi [-]
Set CacheSize to control how many rows the ADO dataset’s provider keeps cached in its buffer and how many to retrieve at one time into local memory. Default value of CacheSize is 1 and the minimum allowed value is 1.
For example, if CacheSize is set to 20, when the dataset is first activated the associated provider retrieves the first 20 rows into local memory. As the row pointer is moved through this recordset, the provider retrieves the data from the local memory buffer. If the dataset’s row pointer moves beyond the last of these 20 buffered rows, the provider retrieves the next 20.
CacheSize represents the maximum number of rows to retrieve at one time. If the number of rows remaining to be retrieved is less than CacheSize, the remaining rows are retrieved and no exception is raised. The number of rows that can be returned by the provider can be less than all of the rows if the ADO dataset component
’s MaxRecords property is set to other than the default (all rows).

Note: The rows retrieved from the cache do not reflect any changes made by other concurrent users of the data.

Neftali [Germán.Estévez] 18-09-2007 14:12:06

Cita:

Empezado por casacham (Mensaje 231839)
Por ejemplo TADOTable carga el juego de datos completamente en la memoria

Para modificar ese comportamiento puedes modificar el valor de la propiedad CursorLocation. Con eso conseguirás que se abra un cursor y se carguen bloques de registros a medida que se vayan necesitando en lugar de todos inicialmente.

casacham 02-10-2007 01:24:27

Que valor deberia tomar esa propiedad?
 
Bueno, creo que el titulo lo dice todo. Antes que nada gracias neftali por tomarte la molestia de responder. Que valor deberia tomar CursorLocation?

eduarcol 02-10-2007 01:44:34

Cita:

Empezado por casacham (Mensaje 235444)
Bueno, creo que el titulo lo dice todo. Antes que nada gracias neftali por tomarte la molestia de responder. Que valor deberia tomar CursorLocation?

Deberia ser server side, mira la diferencia segun la ayuda de delphi

Cita:

A client-side cursor offers more flexibility. All data is retrieved to the local machine and then operated on there, allowing operations not normally supported by servers like sorting and resorting the data and additional filtering. SQL statements are executed at the server, so for statements that restrict the result set with a WHERE clause, only the reduced result set is retrieved to a local cursor.

A server-side cursor offers less flexibility, but may be more advantageous (or necessary) for large result sets. Using a server-side cursor becomes necessary when the sheer size of a result set exceeds the available disk space that would be needed to create the client-side cursor. Also, many servers only support unidirectional cursors. This would preclude moving the record pointer in the dataset backward (even one record) through the result set.

casacham 06-10-2007 21:29:53

Version de delphi
 
Hola eduarcol, y gracias por tu mensaje. De hecho he probado con server side cursor, pero no me permite mantener la relacion master-detail. Me parece que tal vez la solucion sea no usar mas TADOTable, sino TADOQuery, colocar alli ese tipo de cursor y linkar los juegos de datos (DataSets) por SQL. Eso da un poco mas de trabajo, pero voy a intentarlo. Desde ya gracias a todos por responder


La franja horaria es GMT +2. Ahora son las 19:28:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi