broken pipe on commit, see previous log

This commit is contained in:
brianb
2004-03-06 05:14:14 +00:00
parent 6920daaf1e
commit acd03635c4
2 changed files with 34 additions and 33 deletions

View File

@@ -560,7 +560,7 @@ void mdb_sql_listtables(MdbSQL *sql)
MdbTableDef *ttable;
MdbColumn tcol;
MdbSQLColumn *sqlcol;
gchar *tmpstr;
gchar tmpstr[100];
int tmpsiz;
if (!mdb) {
@@ -593,8 +593,7 @@ void mdb_sql_listtables(MdbSQL *sql)
if (entry->object_type == MDB_TABLE) {
if (strncmp (entry->object_name, "MSys", 4)) {
//col = g_ptr_array_index(table->columns,0);
tmpstr = convert_to_ucs2(mdb, entry->object_name);
tmpsiz = IS_JET4(mdb) ? strlen(entry->object_name)*2 : strlen(entry->object_name);
tmpsiz = mdb_ascii2unicode(mdb, entry->object_name, 0, 100, tmpstr);
fields[0].value = tmpstr;
fields[0].siz = tmpsiz;
fields[0].is_fixed = 0;
@@ -605,7 +604,6 @@ void mdb_sql_listtables(MdbSQL *sql)
row_size = mdb_pack_row(ttable, row_buffer, 1, fields);
mdb_add_row_to_pg(ttable,row_buffer, row_size);
ttable->num_rows++;
g_free(tmpstr);
}
}
}
@@ -627,7 +625,7 @@ void mdb_sql_describe_table(MdbSQL *sql)
unsigned char row_buffer[4096];
unsigned char *new_pg;
int row_size;
gchar *col_name, *col_type, *col_size;
gchar col_name[100], col_type[100], col_size[100];
int tmpsiz;
if (!mdb) {
@@ -696,8 +694,7 @@ void mdb_sql_describe_table(MdbSQL *sql)
for (i=0;i<table->num_cols;i++) {
col = g_ptr_array_index(table->columns,i);
col_name = convert_to_ucs2(mdb, col->name);
tmpsiz = IS_JET4(mdb) ? strlen(col->name)*2 : strlen(col->name);
tmpsiz = mdb_ascii2unicode(mdb, col->name, 0, 100, col_name);
fields[0].value = col_name;
fields[0].siz = tmpsiz;
fields[0].is_fixed = 0;
@@ -706,8 +703,7 @@ void mdb_sql_describe_table(MdbSQL *sql)
fields[0].colnum = 0;
strcpy(tmpstr, mdb_get_coltype_string(mdb->default_backend, col->col_type));
col_type = convert_to_ucs2(mdb, tmpstr);
tmpsiz = IS_JET4(mdb) ? strlen(tmpstr)*2 : strlen(tmpstr);
tmpsiz = mdb_ascii2unicode(mdb, tmpstr, 0, 100, col_type);
fields[1].value = col_type;
fields[1].siz = tmpsiz;
fields[1].is_fixed = 0;
@@ -716,8 +712,7 @@ void mdb_sql_describe_table(MdbSQL *sql)
fields[1].colnum = 1;
sprintf(tmpstr,"%d",col->col_size);
col_size = convert_to_ucs2(mdb, tmpstr);
tmpsiz = IS_JET4(mdb) ? strlen(tmpstr)*2 : strlen(tmpstr);
tmpsiz = mdb_ascii2unicode(mdb, tmpstr, 0, 100, col_size);
fields[2].value = col_size;
fields[2].siz = tmpsiz;
fields[2].is_fixed = 0;
@@ -727,9 +722,6 @@ void mdb_sql_describe_table(MdbSQL *sql)
row_size = mdb_pack_row(ttable, row_buffer, 3, fields);
mdb_add_row_to_pg(ttable,row_buffer, row_size);
g_free(col_name);
g_free(col_type);
g_free(col_size);
ttable->num_rows++;
}
@@ -891,6 +883,31 @@ int i;
mdb_sql_bind_column(sql, i+1, sql->bound_values[i]);
}
}
/*
* mdb_sql_fetch_row should be called instead of mdb_fetch_row when there may be
* work tables involved (currently implemented as kludge_ttable_pg)
*/
int
mdb_sql_fetch_row(MdbSQL *sql, MdbTableDef *table)
{
MdbHandle *mdb = table->entry->mdb;
MdbFormatConstants *fmt = mdb->fmt;
unsigned int rows;
if (sql->kludge_ttable_pg) {
memcpy(mdb->pg_buf, sql->kludge_ttable_pg, fmt->pg_size);
rows = mdb_pg_get_int16(mdb,fmt->row_count_offset);
if (rows > table->cur_row) {
mdb_read_row(sql->cur_table, table->cur_row++);
return 1;
}
return 0;
} else {
return mdb_fetch_row(table);
}
}
void
mdb_sql_dump_results(MdbSQL *sql)
{