• 4768阅读
  • 4回复

Qt 连接sqlserver  执行select 之后  无法查询到数据 [复制链接]

上一主题 下一主题
离线jackywgl1024
 
只看楼主 倒序阅读 楼主  发表于: 2012-08-27
数据库lcms  已建好 在sql server 2005 中执行问题 但是在Qt中怎么都查不到数据 ?
代码:
#include <QtGui/QApplication>
#include <QtGui/QDialog>
#include <QtGui/QMessageBox>
#include <iostream>
#include <QString>
#include <QtSql>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QDebug>

using namespace std;
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

bool createConnection();
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    
    if(!createConnection())
    {
        return 1;
    }
    cout << "数据库连接成功!"<< endl;

    db.open();
    if(db.isOpen())
    {
        cout << "已经打开"<< endl;
    }
    QSqlQuery query("SELECT * FROM 存取记录");

    if(!query.isActive())
    {
        QMessageBox::warning(0,"Database Error",query.lastError().text()); //在此处一直报错
        return -1;
    }
    while(query.next())
    {
        cout << qPrintable(query.value(5).toString()) << endl;
       // cout << query.value(5).tostdString() << endl;
    }
这是为什么啊? 怎么解决? 谢谢了
离线xjruan

只看该作者 1楼 发表于: 2012-08-28
bool createConnection();

这个函数里面你做了什么,有没有设置好数据库的位置setDatabaseName ,或者setHostName之类的,然后你的数据库里面有没有你要查询的表啊

离线rozendew

只看该作者 2楼 发表于: 2012-08-28
我没记错的话,if(!query.isActive()) 这个应该是 if(!query.exec()) 。。。
isActive 只是获取状态,另外,你的那个错误提示是数据库语法方面的,不是程序的。。。
我只是知道我所知道的
离线jackywgl1024
只看该作者 3楼 发表于: 2012-08-28
回 1楼(xjruan) 的帖子
问题解决了 是数据库表名的问题  我把表改成英文就没事了
离线jackywgl1024
只看该作者 4楼 发表于: 2012-08-28
回 2楼(rozendew) 的帖子
问题解决了 是数据库表名的问题  我把表改成英文就没事了
快速回复
限100 字节
 
上一个 下一个