Exemplo n.º 1
0
void dump_ole(MdbTableDef *table, char *colname, char *sargname)
{
char ole_data[200000];
int len;
MdbSarg sarg;
char *sargcol, *sargop, *sargval;

	mdb_bind_column_by_name(table, colname, ole_data, &len);

	if (sargname) {
		sargcol = strtok(sargname," ");
		sargop = strtok(NULL," ");
		sargval = strtok(NULL," ");
		printf("col %s op %s val %s\n",sargcol,sargop,sargval);
        	sarg.op = MDB_EQUAL; /* only support = for now, sorry */
		strcpy(sarg.value.s, sargval);
		mdb_add_sarg_by_name(table, sargcol, &sarg);
	}

        mdb_rewind_table(table);
	while (mdb_fetch_row(table)) {
		mdb_buffer_dump(ole_data, 0, len);
		printf("---\n");
	}

}
Exemplo n.º 2
0
void print_table(MdbTableDef *table)
{
int j;
/* doesn't handle tables > 256 columns.  Can that happen? */
char *bound_values[256]; 
MdbColumn *col;
MdbSarg sarg;

	mdb_read_columns(table);

	sarg.op = MDB_EQUAL;
	// sarg.value.i = 11070;
	strcpy(sarg.value.s, "Reggiani Caseifici");
	mdb_add_sarg_by_name(table, "ShipName", &sarg);

	mdb_rewind_table(table);
			
	for (j=0;j<table->num_cols;j++) {
		bound_values[j] = (char *) g_malloc(MDB_BIND_SIZE);
		bound_values[j][0] = '\0';
		mdb_bind_column(table, j+1, bound_values[j], NULL);
	}

	/* print header */
	col=g_ptr_array_index(table->columns,0);
	fprintf(stdout,"%s",col->name);
	for (j=1;j<table->num_cols;j++) {
		col=g_ptr_array_index(table->columns,j);
		fprintf(stdout,"%s%s",DELIMETER,col->name);
	}
	fprintf(stdout,"\n");

	/* print each row */
	while(mdb_fetch_row(table)) {
		fprintf(stdout,"%s",bound_values[0]);
  		for (j=1;j<table->num_cols;j++) {
			fprintf(stdout,"%s%s",DELIMETER,bound_values[j]);
		}
		fprintf(stdout,"\n");
	}

	/* clean up */
	for (j=0;j<table->num_cols;j++) {
		g_free(bound_values[j]);
	}
}