mirror of
https://github.com/mdbtools/mdbtools.git
synced 2026-01-21 18:48:34 +08:00
Bind columns by name in mdb_read_catalog
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
Tue Jun 22 22:02:02 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
|
Tue Jun 22 22:02:02 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
|
||||||
* src/util/mdb-schema.c: Fix a memory leak
|
* src/util/mdb-schema.c: Fix a memory leak
|
||||||
* src/libmdb/mem.c: Fix another memory leak
|
* src/libmdb/mem.c: Fix another memory leak
|
||||||
|
* src/libmdb/catalog.c: Bind columns by name in mdb_read_catalog
|
||||||
|
|
||||||
Mon Jun 21 23:18:18 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
|
Mon Jun 21 23:18:18 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
|
||||||
* src/libmdb/backend.c:
|
* src/libmdb/backend.c:
|
||||||
|
|||||||
@@ -50,12 +50,12 @@ static char *type_name[] = {"Form",
|
|||||||
/* new method */
|
/* new method */
|
||||||
GPtrArray *mdb_read_catalog (MdbHandle *mdb, int objtype)
|
GPtrArray *mdb_read_catalog (MdbHandle *mdb, int objtype)
|
||||||
{
|
{
|
||||||
MdbCatalogEntry entry, msysobj, *data;
|
MdbCatalogEntry *entry, msysobj;
|
||||||
MdbTableDef *table;
|
MdbTableDef *table;
|
||||||
char parentid[256];
|
char obj_id[256];
|
||||||
char objname[256];
|
char obj_name[256];
|
||||||
char tobjtype[256];
|
char obj_type[256];
|
||||||
int type;
|
int type;
|
||||||
|
|
||||||
if (mdb->catalog) mdb_free_catalog(mdb);
|
if (mdb->catalog) mdb_free_catalog(mdb);
|
||||||
mdb_alloc_catalog(mdb);
|
mdb_alloc_catalog(mdb);
|
||||||
@@ -75,25 +75,24 @@ int type;
|
|||||||
|
|
||||||
mdb_read_columns(table);
|
mdb_read_columns(table);
|
||||||
|
|
||||||
mdb_bind_column(table, 1, parentid);
|
mdb_bind_column_by_name(table, "Id", obj_id);
|
||||||
mdb_bind_column(table, 3, objname);
|
mdb_bind_column_by_name(table, "Name", obj_name);
|
||||||
mdb_bind_column(table, 4, tobjtype);
|
mdb_bind_column_by_name(table, "Type", obj_type);
|
||||||
|
|
||||||
mdb_rewind_table(table);
|
mdb_rewind_table(table);
|
||||||
|
|
||||||
while (mdb_fetch_row(table)) {
|
while (mdb_fetch_row(table)) {
|
||||||
type = atoi(tobjtype);
|
type = atoi(obj_type);
|
||||||
if (objtype==MDB_ANY || type == objtype) {
|
if (objtype==MDB_ANY || type == objtype) {
|
||||||
// fprintf(stdout, "parentid: %10ld objtype: %-3d objname: %s\n",
|
// fprintf(stdout, "obj_id: %10ld objtype: %-3d obj_name: %s\n",
|
||||||
// (atol(parentid) & 0x00FFFFFF), type, objname);
|
// (atol(obj_id) & 0x00FFFFFF), type, obj_name);
|
||||||
memset(&entry,0,sizeof(entry));
|
entry = (MdbCatalogEntry *) g_malloc0(sizeof(MdbCatalogEntry));
|
||||||
entry.mdb = mdb;
|
entry->mdb = mdb;
|
||||||
strcpy(entry.object_name, objname);
|
strcpy(entry->object_name, obj_name);
|
||||||
entry.object_type = (type & 0x7F);
|
entry->object_type = (type & 0x7F);
|
||||||
entry.table_pg = atol(parentid) & 0x00FFFFFF;
|
entry->table_pg = atol(obj_id) & 0x00FFFFFF;
|
||||||
mdb->num_catalog++;
|
mdb->num_catalog++;
|
||||||
data = g_memdup(&entry,sizeof(MdbCatalogEntry));
|
g_ptr_array_add(mdb->catalog, entry);
|
||||||
g_ptr_array_add(mdb->catalog, data);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//mdb_dump_catalog(mdb, MDB_TABLE);
|
//mdb_dump_catalog(mdb, MDB_TABLE);
|
||||||
|
|||||||
Reference in New Issue
Block a user