increase page size for Access 2000 support

This commit is contained in:
brianb 2002-03-21 03:51:09 +00:00
parent d13908dcf3
commit 6e3ddd4420
4 changed files with 13 additions and 6 deletions

View File

@ -1,3 +1,7 @@
Wed Mar 20 22:49:33 EST 2002 Brian Bruns <camber@ais.org>
* include/mdbtools.h: increased page size for 2048 to 4096
Sat Mar 16 21:37:01 EST 2002 Brian Bruns <camber@ais.org> Sat Mar 16 21:37:01 EST 2002 Brian Bruns <camber@ais.org>
* include/mdbtools.h: added oam usage map fields to TableDef * include/mdbtools.h: added oam usage map fields to TableDef

View File

@ -29,7 +29,7 @@
#include <string.h> #include <string.h>
#include <glib.h> #include <glib.h>
#define MDB_PGSIZE 2048 #define MDB_PGSIZE 4096
#define MDB_MAX_OBJ_NAME 30 #define MDB_MAX_OBJ_NAME 30
#define MDB_MAX_COLS 256 #define MDB_MAX_COLS 256
#define MDB_MAX_IDX_COLS 10 #define MDB_MAX_IDX_COLS 10

View File

@ -157,7 +157,7 @@ unsigned char isnull;
} }
bitmask_sz = (num_cols - 1) / 8 + 1; bitmask_sz = (num_cols - 1) / 8 + 1;
if (mdb->jet_version==MDB_VER_JET4) { 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 { } else {
eod = mdb->pg_buf[row_end-1-var_cols-bitmask_sz]; 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++)) if (!mdb_read_pg(mdb, table->cur_phys_pg++))
return 0; return 0;
} while (mdb->pg_buf[0]!=0x01 || mdb_get_int32(mdb, 4)!=entry->table_pg); } 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; return table->cur_phys_pg;
} }
int mdb_rewind_table(MdbTableDef *table) int mdb_rewind_table(MdbTableDef *table)
@ -319,10 +319,13 @@ int rc;
/* if at end of page, find a new page */ /* if at end of page, find a new page */
if (table->cur_row >= rows) { if (table->cur_row >= rows) {
table->cur_row=0; 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); rc = mdb_read_row(table, table->cur_row);
table->cur_row++; table->cur_row++;
} while (!rc); } while (!rc);

View File

@ -137,7 +137,7 @@ off_t offset = pg * mdb->pg_size;
return 0; return 0;
} }
else if (len<mdb->pg_size) { else if (len<mdb->pg_size) {
/* fprintf(stderr,"EOF reached.\n"); */ /* fprintf(stderr,"EOF reached %d bytes returned.\n",len, mdb->pg_size); */
return 0; return 0;
} }
return len; return len;