关于OCCI的ResultSet ,坐等结贴
关于OCCI的ResultSet中既有getInt(),又有getString,那么调用哪个方法是和数据库中字段属性的类型有关吗?
比如数据库字段是整形我就getInt()?
但是听说结果集中的所有结果在C++中都是字符的? 要自己转?
getInt(1)中的这个1就是第一个属性吧? 是和自己的select语句的第一个属性name_id相对应吧?
env = Environment::createEnvironment (Environment::DEFAULT);
conn = env->createConnection("Jammy", "1234", "ora92");
string sqlStmt = "SELECT name_id, name FROM tb_name_info";
stmt = conn->createStateMent(sqlStmt);
ResultSet* rset = stmt->executeQuery();
while(rset->next())
{
cout <<"name_id:" << rset->getInt(1)
<< " name:" << rset->getString(2) << endl;
}
[解决办法]
如果数据库里面是整数,那你调用getInt,它就直接返回给你,如果你调用getString,它就先将整数转成字符串,再传给你。
再举个例子,如果数据库里面是字符串,你仍然可以调用getInt,只是它会把字符串转换成整数再传给你,如果转不了,就返回0。
数据库里面的数据类型,你是可以从表头里面得到的。至于具体怎么得到,我记不得了,如果你需要,我回去看看我的老代码,可以回复给你。
getInt里面的序号,指的是你select中列的序号,因为不在select中的列,根本没查询。