int mysql_cursor::outputStru(TFieldList& fld_list) { if(m_itemNum <= 0) return(1); fld_list.newFldList(m_itemNum); for(int n=0; n<m_itemNum; n++) { fld_list[n].setFieldName((const char *)mydefine[n].col_name); fld_list[n].setSourceType(mydefine[n].type); } return 0; }
int mysql_cursor::output(TFieldList& fld_list) { int i = 0; char* temp_buf = NULL; char buf[STRING_SIZE]; memset(buf,0,sizeof(buf)); if(m_itemNum <= 0) return(1); fld_list.newFldList(m_itemNum); for(i=0;i<this->m_itemNum;i++) { fld_list[i].setFieldName((const char *)(mydefine+i)->col_name); fld_list[i].setSourceType((unsigned int)(mydefine+i)->type); if ((mydefine+i)->is_null) { fld_list[i].fieldValue().setNULL(); } else { switch ((mydefine+i)->type) { case MYSQL_TYPE_SHORT: case MYSQL_TYPE_LONG: //sprintf(buf,"%ld", *((int*)(mydefine+i)->buf)); if(mybind[i].is_unsigned) fld_list[i].fieldValue().setUInt(*((unsigned int*)(mydefine+i)->buf)); else fld_list[i].fieldValue().setInt(*((int*)(mydefine+i)->buf)); break; case MYSQL_TYPE_FLOAT: fld_list[i].fieldValue().setFloat(*((float*)(mydefine+i)->buf)); break; case MYSQL_TYPE_LONGLONG: //sprintf(buf,"%lld", *((long long*)(mydefine+i)->buf)); if(mybind[i].is_unsigned) fld_list[i].fieldValue().setULong(*((unsigned long long*)(mydefine+i)->buf)); else fld_list[i].fieldValue().setLLong(*((long long*)(mydefine+i)->buf)); break; case MYSQL_TYPE_VAR_STRING: case MYSQL_TYPE_STRING: fld_list[i].fieldValue().setString((char*)(mydefine+i)->buf); break; case MYSQL_TYPE_DATETIME: /* sprintf(buf,"%04d%02d%02d%02d%02d%02d", ((MYSQL_TIME*)(mydefine+i)->buf)->year, ((MYSQL_TIME*)(mydefine+i)->buf)->month, ((MYSQL_TIME*)(mydefine+i)->buf)->day, ((MYSQL_TIME*)(mydefine+i)->buf)->hour, ((MYSQL_TIME*)(mydefine+i)->buf)->minute, ((MYSQL_TIME*)(mydefine+i)->buf)->second); */ date_format(buf,STRING_SIZE, m_dateformat,(MYSQL_TIME*)(mydefine+i)->buf); fld_list[i].fieldValue().setDate(buf); break; case MYSQL_TYPE_TINY_BLOB: case MYSQL_TYPE_MEDIUM_BLOB: case MYSQL_TYPE_BLOB: fld_list[i].fieldValue().setBinary((char*)(mydefine+i)->buf, (mydefine+i)->length); /* temp_buf = this->fetchBlobColumn(i); if(temp_buf) { //ptr[i].value.value = str_dup(temp_buf); //free(temp_buf); ptr[i].value.value = temp_buf; } */ break; default: fld_list[i].fieldValue().setValue((char*)(mydefine+i)->buf, (mydefine+i)->length); } } } return 0; }