From 6e3ddd4420e6deace44b764c70b25e9259326c88 Mon Sep 17 00:00:00 2001 From: brianb Date: Thu, 21 Mar 2002 03:51:09 +0000 Subject: [PATCH] increase page size for Access 2000 support --- ChangeLog | 4 ++++ include/mdbtools.h | 2 +- src/libmdb/data.c | 11 +++++++---- src/libmdb/file.c | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8c7d45c..5aa9111 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Wed Mar 20 22:49:33 EST 2002 Brian Bruns + + * include/mdbtools.h: increased page size for 2048 to 4096 + Sat Mar 16 21:37:01 EST 2002 Brian Bruns * include/mdbtools.h: added oam usage map fields to TableDef diff --git a/include/mdbtools.h b/include/mdbtools.h index 11b6213..282d07e 100644 --- a/include/mdbtools.h +++ b/include/mdbtools.h @@ -29,7 +29,7 @@ #include #include -#define MDB_PGSIZE 2048 +#define MDB_PGSIZE 4096 #define MDB_MAX_OBJ_NAME 30 #define MDB_MAX_COLS 256 #define MDB_MAX_IDX_COLS 10 diff --git a/src/libmdb/data.c b/src/libmdb/data.c index 7588965..0280a2c 100644 --- a/src/libmdb/data.c +++ b/src/libmdb/data.c @@ -157,7 +157,7 @@ unsigned char isnull; } bitmask_sz = (num_cols - 1) / 8 + 1; if (mdb->jet_version==MDB_VER_JET4) { - eod = mdb->pg_buf[row_end-2-var_cols*2-bitmask_sz]; + eod = mdb_get_int16(mdb, row_end - 3 - var_cols*2 - bitmask_sz); } else { eod = mdb->pg_buf[row_end-1-var_cols-bitmask_sz]; } @@ -288,7 +288,7 @@ MdbHandle *mdb = entry->mdb; if (!mdb_read_pg(mdb, table->cur_phys_pg++)) return 0; } while (mdb->pg_buf[0]!=0x01 || mdb_get_int32(mdb, 4)!=entry->table_pg); - // fprintf(stderr,"returning new page %ld\n", table->cur_phys_pg); + /* fprintf(stderr,"returning new page %ld\n", table->cur_phys_pg); */ return table->cur_phys_pg; } int mdb_rewind_table(MdbTableDef *table) @@ -319,10 +319,13 @@ int rc; /* if at end of page, find a new page */ if (table->cur_row >= rows) { table->cur_row=0; - if (!mdb_read_next_dpg(table)) return 0; + + if (!mdb_read_next_dpg(table)) { + return 0; + } } - //printf("page %d row %d\n",table->cur_phys_pg, table->cur_row); + /* printf("page %d row %d\n",table->cur_phys_pg, table->cur_row); */ rc = mdb_read_row(table, table->cur_row); table->cur_row++; } while (!rc); diff --git a/src/libmdb/file.c b/src/libmdb/file.c index aedb365..94f83ef 100644 --- a/src/libmdb/file.c +++ b/src/libmdb/file.c @@ -137,7 +137,7 @@ off_t offset = pg * mdb->pg_size; return 0; } else if (lenpg_size) { - /* fprintf(stderr,"EOF reached.\n"); */ + /* fprintf(stderr,"EOF reached %d bytes returned.\n",len, mdb->pg_size); */ return 0; } return len;