00001 #include "../include/OracleResultSetMetaData.h"
00002
00003
00004 OracleResultSetMetaData::OracleResultSetMetaData(std::vector<oracle::occi::MetaData> metaData)
00005 {
00006 m_MetaData = metaData;
00007 }
00008
00009 int OracleResultSetMetaData::GetColumnType(int i)
00010 {
00011 int fieldType = COLUMN_UNKNOWN;
00012 int oracleFieldType = m_MetaData[i].getInt(oracle::occi::MetaData::ATTR_DATA_TYPE);
00013 switch (oracleFieldType)
00014 {
00015 case oracle::occi::OCCI_SQLT_NUM:
00016 case oracle::occi::OCCIINT:
00017 case oracle::occi::OCCI_SQLT_LNG:
00018 case oracle::occi::OCCINUMBER:
00019 case oracle::occi::OCCIROWID:
00020 fieldType = COLUMN_INTEGER;
00021 break;
00022 case oracle::occi::OCCI_SQLT_STR:
00023 case oracle::occi::OCCISTRING:
00024 fieldType = COLUMN_STRING;
00025 break;
00026 case oracle::occi::OCCIFLOAT:
00027 case oracle::occi::OCCIBFLOAT:
00028 case oracle::occi::OCCIBDOUBLE:
00029 case oracle::occi::OCCIIBFLOAT:
00030 case oracle::occi::OCCIIBDOUBLE:
00031 case oracle::occi::OCCIDOUBLE:
00032 fieldType = COLUMN_DOUBLE;
00033 break;
00034 case oracle::occi::OCCIBOOL:
00035 fieldType = COLUMN_BOOL;
00036 break;
00037 case oracle::occi::OCCI_SQLT_CLOB:
00038 case oracle::occi::OCCI_SQLT_BLOB:
00039 case oracle::occi::OCCIBLOB:
00040 case oracle::occi::OCCIBYTES:
00041 case oracle::occi::OCCICLOB:
00042 fieldType = COLUMN_BLOB;
00043 break;
00044 case oracle::occi::OCCI_SQLT_DATE:
00045 case oracle::occi::OCCI_SQLT_TIME:
00046 case oracle::occi::OCCI_SQLT_TIME_TZ:
00047 case oracle::occi::OCCI_SQLT_TIMESTAMP:
00048 case oracle::occi::OCCI_SQLT_TIMESTAMP_TZ:
00049 case oracle::occi::OCCI_SQLT_TIMESTAMP_LTZ:
00050 case oracle::occi::OCCIDATE:
00051 case oracle::occi::OCCITIMESTAMP:
00052 fieldType = COLUMN_DATE;
00053 break;
00054 default:
00055 fieldType = COLUMN_UNKNOWN;
00056 break;
00057 };
00058 return fieldType;
00059 }
00060
00061 int OracleResultSetMetaData::GetColumnSize(int i)
00062 {
00063 int oracleFieldSize = m_MetaData[i].getInt(oracle::occi::MetaData::ATTR_DATA_SIZE);
00064 return oracleFieldSize;
00065 }
00066
00067 wxString OracleResultSetMetaData::GetColumnName(int i)
00068 {
00069 wxString strField = ConvertFromUnicodeStream(m_MetaData[i].getString(oracle::occi::MetaData::ATTR_NAME).c_str());
00070 return strField;
00071 }
00072
00073 int OracleResultSetMetaData::GetColumnCount()
00074 {
00075 return m_MetaData.size();
00076 }
00077