Exemple #1
0
static size_t
mdb_xfer_bound_data(MdbHandle *mdb, int start, MdbColumn *col, int len)
{
int ret;
	
		
	
	if (len) {
		col->cur_value_start = start;
		col->cur_value_len = len;
	} else {
		col->cur_value_start = 0;
		col->cur_value_len = 0;
	}
	if (col->bind_ptr) {
		if (!len) {
			strcpy(col->bind_ptr, "");
		} else {
			
			char *str;
			if (col->col_type == MDB_NUMERIC) {
                /*fprintf(stdout,"MDB_NUMERIC\n");*/
				str = mdb_num_to_string(mdb, start,
					col->col_type, col->col_prec,
					col->col_scale);
                /*fprintf(stdout,"mdb_num_to_string()=%d '%s'\n", strlen(str), str);*/
			} else {
                /*fprintf(stdout,"!MDB_NUMERIC : %d len=%d\n", col->col_type, len);*/
				str = mdb_col_to_string(mdb, mdb->pg_buf, start,
					col->col_type, len);
                /*if (strlen(str) > MDB_BIND_SIZE) {
                    fprintf(stdout, "!!!!!!\n");
                }
                fprintf(stdout,"mdb_col_to_string()=%d '%s'\n", strlen(str), str);*/
			}
			strcpy(col->bind_ptr, str);
			g_free(str);
		}
		ret = strlen(col->bind_ptr);
		if (col->len_ptr) {
			*col->len_ptr = ret;
		}
		return ret;
	}
	return 0;
}
Exemple #2
0
static size_t
mdb_xfer_bound_data(MdbHandle *mdb, int start, MdbColumn *col, int len)
{
int ret;
	//if (!strcmp("Name",col->name)) {
		//printf("start %d %d\n",start, len);
	//}
	if (len) {
		col->cur_value_start = start;
		col->cur_value_len = len;
	} else {
		col->cur_value_start = 0;
		col->cur_value_len = 0;
	}
	if (col->bind_ptr) {
		if (!len) {
			strcpy(col->bind_ptr, "");
		} else {
			//fprintf(stdout,"len %d size %d\n",len, col->col_size);
			char *str;
			if (col->col_type == MDB_NUMERIC) {
				str = mdb_num_to_string(mdb, start,
					col->col_type, col->col_prec,
					col->col_scale);
			} else {
				str = mdb_col_to_string(mdb, mdb->pg_buf, start,
					col->col_type, len);
			}
			strcpy(col->bind_ptr, str);
			g_free(str);
		}
		ret = strlen(col->bind_ptr);
		if (col->len_ptr) {
			*col->len_ptr = ret;
		}
		return ret;
	}
	return 0;
}