Handle errors from mdb_bind_column()

This commit is contained in:
James Woodcock
2020-10-31 09:46:00 +00:00
parent 50f1bd4a86
commit de4f5516b7
4 changed files with 27 additions and 5 deletions

View File

@@ -488,16 +488,24 @@ mdb_fetch_row(MdbTableDef *table)
void mdb_data_dump(MdbTableDef *table) void mdb_data_dump(MdbTableDef *table)
{ {
unsigned int i; unsigned int i;
int ret;
char *bound_values[MDB_MAX_COLS]; char *bound_values[MDB_MAX_COLS];
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
bound_values[i] = (char *) g_malloc(256); bound_values[i] = (char *) g_malloc(256);
mdb_bind_column(table, i+1, bound_values[i], NULL); ret = mdb_bind_column(table, i+1, bound_values[i], NULL);
if (ret == -1) {
fprintf(stdout, "error binding column %d\n", i+1);
g_free(bound_values[i]);
bound_values[i] = NULL;
}
} }
mdb_rewind_table(table); mdb_rewind_table(table);
while (mdb_fetch_row(table)) { while (mdb_fetch_row(table)) {
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
fprintf(stdout, "column %d is %s\n", i+1, bound_values[i]); if (bound_values[i]) {
fprintf(stdout, "column %d is %s\n", i+1, bound_values[i]);
}
} }
} }
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {

View File

@@ -51,6 +51,7 @@ main(int argc, char **argv)
int bin_mode = MDB_BINEXPORT_RAW; int bin_mode = MDB_BINEXPORT_RAW;
char *value; char *value;
size_t length; size_t length;
int ret;
GOptionEntry entries[] = { GOptionEntry entries[] = {
{"no-header", 'H', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &header_row, "Suppress header row.", NULL}, {"no-header", 'H', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &header_row, "Suppress header row.", NULL},
@@ -172,7 +173,11 @@ main(int argc, char **argv)
for (i = 0; i < table->num_cols; i++) { for (i = 0; i < table->num_cols; i++) {
/* bind columns */ /* bind columns */
bound_values[i] = (char *) g_malloc0(EXPORT_BIND_SIZE); bound_values[i] = (char *) g_malloc0(EXPORT_BIND_SIZE);
mdb_bind_column(table, i + 1, bound_values[i], &bound_lens[i]); ret = mdb_bind_column(table, i + 1, bound_values[i], &bound_lens[i]);
if (ret == -1) {
fprintf(stderr, "Failed to bind column %d\n", i + 1);
exit(1);
}
} }
if (header_row) { if (header_row) {
for (i = 0; i < table->num_cols; i++) { for (i = 0; i < table->num_cols; i++) {

View File

@@ -112,6 +112,7 @@ main(int argc, char **argv)
char *shortdate_fmt = NULL; char *shortdate_fmt = NULL;
char *value; char *value;
size_t length; size_t length;
int ret;
GOptionEntry entries[] = { GOptionEntry entries[] = {
{"date-format", 'D', 0, G_OPTION_ARG_STRING, &shortdate_fmt, "Set the date format (see strftime(3) for details)", "format"}, {"date-format", 'D', 0, G_OPTION_ARG_STRING, &shortdate_fmt, "Set the date format (see strftime(3) for details)", "format"},
@@ -166,7 +167,11 @@ main(int argc, char **argv)
for (i=0;i<table->num_cols;i++) { for (i=0;i<table->num_cols;i++) {
/* bind columns */ /* bind columns */
bound_values[i] = (char *) g_malloc0(EXPORT_BIND_SIZE); bound_values[i] = (char *) g_malloc0(EXPORT_BIND_SIZE);
mdb_bind_column(table, i+1, bound_values[i], &bound_lens[i]); ret = mdb_bind_column(table, i+1, bound_values[i], &bound_lens[i]);
if (ret == -1) {
fprintf(stderr, "Failed to bind column %d\n", i + 1);
exit(1);
}
} }
while(mdb_fetch_row(table)) { while(mdb_fetch_row(table)) {

View File

@@ -64,7 +64,11 @@ MdbSarg sarg;
for (j=0;j<table->num_cols;j++) { for (j=0;j<table->num_cols;j++) {
bound_values[j] = (char *) g_malloc(MDB_BIND_SIZE); bound_values[j] = (char *) g_malloc(MDB_BIND_SIZE);
bound_values[j][0] = '\0'; bound_values[j][0] = '\0';
mdb_bind_column(table, j+1, bound_values[j], NULL); ret = mdb_bind_column(table, j+1, bound_values[j], NULL);
if (ret == -1) {
fprintf(stderr, "Failed to bind column %d\n", i + 1);
exit(1);
}
} }
/* print header */ /* print header */