Combine functions that bind a column and its length

This commit is contained in:
whydoubt
2004-12-31 01:26:28 +00:00
parent 34f39973a1
commit d06cb3e47d
22 changed files with 71 additions and 92 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -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)) {

View File

@@ -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);