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; MdbTableDef *ttable;
MdbColumn tcol; MdbColumn tcol;
MdbSQLColumn *sqlcol; MdbSQLColumn *sqlcol;
gchar *tmpstr; gchar tmpstr[100];
int tmpsiz; int tmpsiz;
if (!mdb) { if (!mdb) {
@@ -593,8 +593,7 @@ void mdb_sql_listtables(MdbSQL *sql)
if (entry->object_type == MDB_TABLE) { if (entry->object_type == MDB_TABLE) {
if (strncmp (entry->object_name, "MSys", 4)) { if (strncmp (entry->object_name, "MSys", 4)) {
//col = g_ptr_array_index(table->columns,0); //col = g_ptr_array_index(table->columns,0);
tmpstr = convert_to_ucs2(mdb, entry->object_name); tmpsiz = mdb_ascii2unicode(mdb, entry->object_name, 0, 100, tmpstr);
tmpsiz = IS_JET4(mdb) ? strlen(entry->object_name)*2 : strlen(entry->object_name);
fields[0].value = tmpstr; fields[0].value = tmpstr;
fields[0].siz = tmpsiz; fields[0].siz = tmpsiz;
fields[0].is_fixed = 0; 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); row_size = mdb_pack_row(ttable, row_buffer, 1, fields);
mdb_add_row_to_pg(ttable,row_buffer, row_size); mdb_add_row_to_pg(ttable,row_buffer, row_size);
ttable->num_rows++; ttable->num_rows++;
g_free(tmpstr);
} }
} }
} }
@@ -627,7 +625,7 @@ void mdb_sql_describe_table(MdbSQL *sql)
unsigned char row_buffer[4096]; unsigned char row_buffer[4096];
unsigned char *new_pg; unsigned char *new_pg;
int row_size; int row_size;
gchar *col_name, *col_type, *col_size; gchar col_name[100], col_type[100], col_size[100];
int tmpsiz; int tmpsiz;
if (!mdb) { if (!mdb) {
@@ -696,8 +694,7 @@ void mdb_sql_describe_table(MdbSQL *sql)
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
col = g_ptr_array_index(table->columns,i); col = g_ptr_array_index(table->columns,i);
col_name = convert_to_ucs2(mdb, col->name); tmpsiz = mdb_ascii2unicode(mdb, col->name, 0, 100, col_name);
tmpsiz = IS_JET4(mdb) ? strlen(col->name)*2 : strlen(col->name);
fields[0].value = col_name; fields[0].value = col_name;
fields[0].siz = tmpsiz; fields[0].siz = tmpsiz;
fields[0].is_fixed = 0; fields[0].is_fixed = 0;
@@ -706,8 +703,7 @@ void mdb_sql_describe_table(MdbSQL *sql)
fields[0].colnum = 0; fields[0].colnum = 0;
strcpy(tmpstr, mdb_get_coltype_string(mdb->default_backend, col->col_type)); strcpy(tmpstr, mdb_get_coltype_string(mdb->default_backend, col->col_type));
col_type = convert_to_ucs2(mdb, tmpstr); tmpsiz = mdb_ascii2unicode(mdb, tmpstr, 0, 100, col_type);
tmpsiz = IS_JET4(mdb) ? strlen(tmpstr)*2 : strlen(tmpstr);
fields[1].value = col_type; fields[1].value = col_type;
fields[1].siz = tmpsiz; fields[1].siz = tmpsiz;
fields[1].is_fixed = 0; fields[1].is_fixed = 0;
@@ -716,8 +712,7 @@ void mdb_sql_describe_table(MdbSQL *sql)
fields[1].colnum = 1; fields[1].colnum = 1;
sprintf(tmpstr,"%d",col->col_size); sprintf(tmpstr,"%d",col->col_size);
col_size = convert_to_ucs2(mdb, tmpstr); tmpsiz = mdb_ascii2unicode(mdb, tmpstr, 0, 100, col_size);
tmpsiz = IS_JET4(mdb) ? strlen(tmpstr)*2 : strlen(tmpstr);
fields[2].value = col_size; fields[2].value = col_size;
fields[2].siz = tmpsiz; fields[2].siz = tmpsiz;
fields[2].is_fixed = 0; 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); row_size = mdb_pack_row(ttable, row_buffer, 3, fields);
mdb_add_row_to_pg(ttable,row_buffer, row_size); 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++; ttable->num_rows++;
} }
@@ -891,6 +883,31 @@ int i;
mdb_sql_bind_column(sql, i+1, sql->bound_values[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 void
mdb_sql_dump_results(MdbSQL *sql) mdb_sql_dump_results(MdbSQL *sql)
{ {

View File

@@ -237,21 +237,6 @@ dump_results(MdbSQL *sql)
fprintf(stdout, "%s", sqlcol->name); fprintf(stdout, "%s", sqlcol->name);
fprintf(stdout,"\n"); fprintf(stdout,"\n");
} }
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);
for (i = 0; i < rows; i++) {
rc = mdb_read_row(sql->cur_table, i);
row_count++;
for (j=0;j<sql->num_columns-1;j++) {
sqlcol = g_ptr_array_index(sql->columns,j);
fprintf(stdout, "%s%s", sql->bound_values[j], delimiter);
}
sqlcol = g_ptr_array_index(sql->columns,sql->num_columns-1);
fprintf(stdout, "%s", sql->bound_values[sql->num_columns-1]);
fprintf(stdout,"\n");
}
}else {
while(mdb_fetch_row(sql->cur_table)) { while(mdb_fetch_row(sql->cur_table)) {
row_count++; row_count++;
for (j=0;j<sql->num_columns-1;j++) { for (j=0;j<sql->num_columns-1;j++) {
@@ -262,7 +247,6 @@ dump_results(MdbSQL *sql)
fprintf(stdout, "%s", sql->bound_values[sql->num_columns-1]); fprintf(stdout, "%s", sql->bound_values[sql->num_columns-1]);
fprintf(stdout,"\n"); fprintf(stdout,"\n");
} }
}
if (footers) { if (footers) {
if (!row_count) if (!row_count)
fprintf(stdout, "No Rows retrieved\n"); fprintf(stdout, "No Rows retrieved\n");
@@ -307,6 +291,7 @@ dump_results_pp(MdbSQL *sql)
fprintf(stdout,"\n"); fprintf(stdout,"\n");
/* print each row */ /* print each row */
/*
if (sql->kludge_ttable_pg) { if (sql->kludge_ttable_pg) {
memcpy(mdb->pg_buf, sql->kludge_ttable_pg, fmt->pg_size); memcpy(mdb->pg_buf, sql->kludge_ttable_pg, fmt->pg_size);
rows = mdb_pg_get_int16(mdb,fmt->row_count_offset); rows = mdb_pg_get_int16(mdb,fmt->row_count_offset);
@@ -319,8 +304,8 @@ dump_results_pp(MdbSQL *sql)
} }
fprintf(stdout,"\n"); fprintf(stdout,"\n");
} }
} else { */
while(mdb_fetch_row(sql->cur_table)) { while(mdb_sql_fetch_row(sql, sql->cur_table)) {
row_count++; row_count++;
for (j=0;j<sql->num_columns;j++) { for (j=0;j<sql->num_columns;j++) {
sqlcol = g_ptr_array_index(sql->columns,j); sqlcol = g_ptr_array_index(sql->columns,j);
@@ -328,7 +313,6 @@ dump_results_pp(MdbSQL *sql)
} }
fprintf(stdout,"\n"); fprintf(stdout,"\n");
} }
}
/* footer */ /* footer */
for (j=0;j<sql->num_columns;j++) { for (j=0;j<sql->num_columns;j++) {