Пример #1
0
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;
}
Пример #2
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;
}