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; }
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; }