mirror of
https://github.com/mdbtools/mdbtools.git
synced 2026-03-10 00:20:54 +08:00
Combine functions that bind a column and its length
This commit is contained in:
@@ -265,10 +265,10 @@ char *mdb_get_relationships(MdbHandle *mdb)
|
||||
for (i=0;i<4;i++) {
|
||||
bound[i] = (char *) g_malloc0(MDB_BIND_SIZE);
|
||||
}
|
||||
mdb_bind_column_by_name(table, "szColumn", bound[0]);
|
||||
mdb_bind_column_by_name(table, "szObject", bound[1]);
|
||||
mdb_bind_column_by_name(table, "szReferencedColumn", bound[2]);
|
||||
mdb_bind_column_by_name(table, "szReferencedObject", bound[3]);
|
||||
mdb_bind_column_by_name(table, "szColumn", bound[0], NULL);
|
||||
mdb_bind_column_by_name(table, "szObject", bound[1], NULL);
|
||||
mdb_bind_column_by_name(table, "szReferencedColumn", bound[2], NULL);
|
||||
mdb_bind_column_by_name(table, "szReferencedObject", bound[3], NULL);
|
||||
mdb_rewind_table(table);
|
||||
|
||||
is_init = 1;
|
||||
|
||||
@@ -86,10 +86,10 @@ GPtrArray *mdb_read_catalog (MdbHandle *mdb, int objtype)
|
||||
|
||||
mdb_read_columns(table);
|
||||
|
||||
mdb_bind_column_by_name(table, "Id", obj_id);
|
||||
mdb_bind_column_by_name(table, "Name", obj_name);
|
||||
mdb_bind_column_by_name(table, "Type", obj_type);
|
||||
mdb_bind_column_by_name(table, "Flags", obj_flags);
|
||||
mdb_bind_column_by_name(table, "Id", obj_id, NULL);
|
||||
mdb_bind_column_by_name(table, "Name", obj_name, NULL);
|
||||
mdb_bind_column_by_name(table, "Type", obj_type, NULL);
|
||||
mdb_bind_column_by_name(table, "Flags", obj_flags, NULL);
|
||||
|
||||
mdb_rewind_table(table);
|
||||
|
||||
|
||||
@@ -41,18 +41,22 @@ void mdb_set_date_fmt(const char *fmt)
|
||||
strncpy(date_fmt, fmt, 63);
|
||||
}
|
||||
|
||||
void mdb_bind_column(MdbTableDef *table, int col_num, void *bind_ptr)
|
||||
void mdb_bind_column(MdbTableDef *table, int col_num, void *bind_ptr, int *len_ptr)
|
||||
{
|
||||
MdbColumn *col;
|
||||
MdbColumn *col;
|
||||
|
||||
/*
|
||||
** the column arrary is 0 based, so decrement to get 1 based parameter
|
||||
*/
|
||||
col=g_ptr_array_index(table->columns, col_num - 1);
|
||||
col->bind_ptr = bind_ptr;
|
||||
|
||||
if (bind_ptr)
|
||||
col->bind_ptr = bind_ptr;
|
||||
if (len_ptr)
|
||||
col->len_ptr = len_ptr;
|
||||
}
|
||||
int
|
||||
mdb_bind_column_by_name(MdbTableDef *table, gchar *col_name, void *bind_ptr)
|
||||
mdb_bind_column_by_name(MdbTableDef *table, gchar *col_name, void *bind_ptr, int *len_ptr)
|
||||
{
|
||||
unsigned int i;
|
||||
int col_num = -1;
|
||||
@@ -61,21 +65,17 @@ mdb_bind_column_by_name(MdbTableDef *table, gchar *col_name, void *bind_ptr)
|
||||
for (i=0;i<table->num_cols;i++) {
|
||||
col=g_ptr_array_index(table->columns,i);
|
||||
if (!strcmp(col->name,col_name)) {
|
||||
col_num = col->col_num + 1;
|
||||
mdb_bind_column(table, col_num, bind_ptr);
|
||||
col_num = i + 1;
|
||||
if (bind_ptr)
|
||||
col->bind_ptr = bind_ptr;
|
||||
if (len_ptr)
|
||||
col->len_ptr = len_ptr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return col_num;
|
||||
}
|
||||
void mdb_bind_len(MdbTableDef *table, int col_num, int *len_ptr)
|
||||
{
|
||||
MdbColumn *col;
|
||||
|
||||
col=g_ptr_array_index(table->columns, col_num - 1);
|
||||
col->len_ptr = len_ptr;
|
||||
}
|
||||
|
||||
/**
|
||||
* mdb_find_pg_row
|
||||
@@ -397,7 +397,7 @@ void mdb_data_dump(MdbTableDef *table)
|
||||
|
||||
for (i=0;i<table->num_cols;i++) {
|
||||
bound_values[i] = (char *) g_malloc(256);
|
||||
mdb_bind_column(table, i+1, bound_values[i]);
|
||||
mdb_bind_column(table, i+1, bound_values[i], NULL);
|
||||
}
|
||||
mdb_rewind_table(table);
|
||||
while (mdb_fetch_row(table)) {
|
||||
|
||||
@@ -49,7 +49,7 @@ MdbFormatConstants MdbJet4Constants = {
|
||||
4096, 0x0c, 16, 45, 47, 51, 55, 56, 63, 12, 15, 23, 5, 25, 59, 7, 21, 9
|
||||
};
|
||||
MdbFormatConstants MdbJet3Constants = {
|
||||
2048, 0x08, 12, 25, 27, 31, 35, 36, 43, 8, 13, 16, 1, 18, 39, 3, 14, 5 /* not sure on 5, need to check */
|
||||
2048, 0x08, 12, 25, 27, 31, 35, 36, 43, 8, 13, 16, 1, 18, 39, 3, 14, 5
|
||||
};
|
||||
|
||||
static ssize_t _mdb_read_pg(MdbHandle *mdb, unsigned char *pg_buf, unsigned long pg);
|
||||
|
||||
Reference in New Issue
Block a user