• 6651阅读
  • 8回复

QT能否访问TimesTen数据? [复制链接]

上一主题 下一主题
离线rsjwj
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-16
利用QODBC连接TimesTen成功,但QSqlQueryModel、QSqlQuery数据不成功。
离线wxj120bw

只看该作者 1楼 发表于: 2011-04-16
引用楼主rsjwj于2011-04-16 18:42发表的 QT能否访问TimesTen数据? :
利用QODBC连接TimesTen成功,但QSqlQueryModel、QSqlQuery取数据不成功。

没有错误或者警告的信息输出吗
离线rsjwj
只看该作者 2楼 发表于: 2011-04-18
没有错误提示。我在tableview里和label里显示都没数据显示。
离线wxj120bw

只看该作者 3楼 发表于: 2011-04-19
引用第2楼rsjwj于2011-04-18 22:49发表的  :
没有错误提示。我在tableview里和label里显示都没数据显示。

数据库有数据吗 还有贴下连接和查询的语句代码出来
离线rsjwj
只看该作者 4楼 发表于: 2011-04-23
bool test::connDb()
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
    db.setHostName("11.11.11.11");
    db.setDatabaseName("timesTen");
    db.setUserName("test");
    db.setPassword("test");
    if(!db.open())
    {
         QMessageBox::critical(0,QObject::tr("Database Error"),db.lastError().text());
         return false;
    }
    QMessageBox::information(this,"aaa","bbb");                     --------------1  
    return true;
}

void test::showData()
{
    QSqlQuery staQuery("select max(rid) from testTable");
    while(staQuery.next())
    {
        QMessageBox::information(this,"ccc","ddd");                  --------------2
        ui.label->setTest(staQuery.value(0).toString());    
    }  
}


主函数里先后调用connDb()和showData(),能弹出第一个窗口,第二个窗口弹不出来。label里不能显示结果。
离线wxj120bw

只看该作者 5楼 发表于: 2011-04-26
引用第4楼rsjwj于2011-04-23 20:49发表的  :
bool test::connDb()
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
    db.setHostName("11.11.11.11");
    db.setDatabaseName("timesTen");
.......

Successfully executed SQL statements set the query's state to active so that isActive() returns true. Otherwise the query's state is set to inactive. In either case, when executing a new SQL statement, the query is positioned on an invalid record. An active query must be navigated to a valid record (so that isValid() returns true) before values can be retrieved.
摘取上面那段英文,使想楼主自己砍下,自己在QSqlQuery是不是少了什么操作。
离线mayunshen

只看该作者 6楼 发表于: 2013-01-18
我也遇到了同样的问题,最后发现QT的OBDC插件有问题(我的QT是4.5的不知道后期的是否修改过了),修改了下QSqlQuery可以用了,但是TimesTen不支持SQLFetchScroll,所以data model都不能用的,不知道谁有什么解决办法。
离线abelsky

只看该作者 7楼 发表于: 2017-10-31
回 rsjwj 的帖子
rsjwj:bool test::connDb()
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
    db.setHostName("11.11.11.11");
    db.setDatabaseName("timesTen");
....... (2011-04-23 20:49) 

请问,用ODBC连接timesten,前提要做哪些设置,在linux环境下
离线angelus

只看该作者 8楼 发表于: 2017-10-31
只是定义了查询语句,你好像没有执行查询语句
QSqlQuery staQuery("select max(rid) from testTable");
    while(staQuery.next())

我没有像你那样用过,不知道能否执行,我都是主动调用query.exec();
快速回复
限100 字节
 
上一个 下一个