Claims
- 1. A method, comprising:
(a) retrieving a first record from a database in response to a request from a first recordset; (b) saving the first record on a first bufferpage of a memory, the first bufferpage being associated with the first recordset; (a) repeating steps (a) and (b) for at least one further record; (b) when a next record requested by the first recordset is larger than a freespace on the first bufferpage, saving the next record on a second bufferpage of the memory, the second bufferpage being associated with the first recordset; and (c) if one of the first record, the at least one further record, and the next record was previously retrieved and saved by at least one of the first recordset and at least one second recordset as a prior record, storing a pointer with the prior record, the pointer pointing to the one of the first record, the at least one further record, and the next record.
- 2. The method of claim 1, further comprising creating a first object that includes a kernel pointer, the kernel pointer pointing to the prior record.
- 3. The method of claim 1, further comprising comparing the freespace on the first bufferpage to a size of the next record.
- 4. A method of managing a memory, comprising:
(a) dividing the memory into a plurality of blocks; (b) recording in a first block of the memory in a first databuffer at least a first property of a first record in response to a first request of a first recordset; (c) recording in one of the first block and a second block of the memory in a second databuffer at least one of the first property and a second property of the first record in response to a second request of one of the first recordset and a second recordset; and (d) storing with the first databuffer a pointer to the second databuffer.
- 5. The method of claim 4, further comprising:
recording in one of the first block, the second block, and a third block of the memory in a third databuffer at least one of the first property, the second property, and a third property of the first record in response to a third request of one of the first recordset, the second recordset, and a third recordset; storing with the second databuffer a further pointer to the third databuffer.
- 6. The method of claim 5, further comprising:
receiving a signal that the one of the first recordset and the second recordset that provided the second request is inactive; storing with the first databuffer the further pointer to the third databuffer.
- 7. The method of claim 5, further comprising, if the first record stored in response to the first request is a first instance of the first record being stored, creating a kernel pointer in a database access system, the kernel pointer pointing to the first databuffer.
- 8. The method of claim 4, wherein each of the plurality of blocks of memory has a fixed size equal to each other of the plurality of blocks.
- 9. A device for accessing a database, comprising:
a database memory; a program memory; and a processor coupled to the database memory and the program memory, the processor adapted to:
retrieve a first record from the database memory in response to a request from a first recordset; save the first record on a first bufferpage of the program memory, the first bufferpage being associated with the first recordset; repeat for at least one further record; when a next record requested by the first recordset is larger than a freespace on the first bufferpage, save the next record on a second bufferpage of the program memory, the second bufferpage being associated with the first recordset; and if one of the first record, the at least one further record, and the next record was previously retrieved and saved on the program memory by at least one of the first recordset and at least one second recordset as a prior record, store a pointer with the prior record, the pointer pointing to the one of the first record, the at least one further record, and the next record.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is a divisional of U.S. patent application Ser. No. 10/455,294, filed Jun. 4, 2003.
Divisions (1)
|
Number |
Date |
Country |
Parent |
10455294 |
Jun 2003 |
US |
Child |
10672514 |
Sep 2003 |
US |