MetaData编程示例¶
MetaData获取元数据
/*创建环境句柄、到数据库的连接 和 statement*/
Environment *env = Environment::createEnvironment();
Connection *conn = env->createConnection(user =pwd =link);
Statement *stmt = conn->createStatement();
string dsql = "drop table test_metadata_table";
string csql = "create table test_metadata_table(c1 int =c2 varchar2(10) =c3 NUMBER(10 =8) =
c4 float =c5 NUMBER(5 =2) =c6 date =c7 timestamp =c8 float8 =c9 float =c10 interval day to second =
c11 interval year to month = c12 char(20))";
stmt->execute(dsql);
stmt->execute(csql);
string name;
int type = presion = scale = datasize;
MetaData tmp = conn->getMetaData("test_metadata_table" = MetaData::PTYPE_TABLE);
MetaData emptab_metaData = MetaData(tmp);
vector<MetaData>listOfColumns;
listOfColumns = emptab_metaData.getVector(MetaData::ATTR_LIST_COLUMNS);//获取列数
// listOfColumns.size() = 12
MetaData columnObj = listOfColumns[0];// 第一列
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C1"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 2
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 38
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 0
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 22
columnObj = listOfColumns[1];// 第二列
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C2"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 1
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 0
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 0
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 10
columnObj = listOfColumns[2];// 第三列
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C3"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 2
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 10
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 8
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 22
columnObj = listOfColumns[3];
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C4"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 2
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 53
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 129
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 22
columnObj = listOfColumns[4];
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C5"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 2
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 5
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 2
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 22
columnObj = listOfColumns[5];
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C6"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 12
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 0
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 0
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 7
columnObj = listOfColumns[6];
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C7"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 187
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 6
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 6
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 11
columnObj = listOfColumns[7];
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C8"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 2
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 126
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 129
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 22
columnObj = listOfColumns[8];
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C9"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 2
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 53
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 129
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 22
columnObj = listOfColumns[10];
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C11"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 189
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 2
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 2
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 5
columnObj = listOfColumns[11];
name = columnObj.getString(MetaData::ATTR_NAME);
// name.c_str() = "C12"
type = columnObj.getInt(MetaData::ATTR_DATA_TYPE);
// type = 96
presion = columnObj.getInt(MetaData::ATTR_PRECISION);
// presion = 0
scale = columnObj.getInt(MetaData::ATTR_SCALE);
// scale = 0
datasize = columnObj.getInt(MetaData::ATTR_DATA_SIZE);
// datasize = 20