k_woon
k_woon
2015-01-16 12:08

QT4连接SQL Server出现SqlQuery::exec: database not open

  • qt4
  • qt
  • sql

我是新手,在用QT4连接SQL Server 2005 Express 时出现了QSqlQuery::exec: database not open这种错误,不知道哪里出错了,谁可以帮帮忙吗

我的做法是:编译了驱动(显示有QODBC这个东东了),然后QT工程里新建一个connection.h的头文件,在main.cpp中加入这个头文件,引用这个头文件中creatconnection()的方法。

源码:
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "dbTemp");
QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=PC-201004231231\SQLEXPRESS;DATABASE=master");
db.setDatabaseName(dsn);
db.setUserName("sa");
db.setPassword("huang110");

if(!db.open()) {

    QMessageBox::critical(0, QObject::tr("Database Error"),

        db.lastError().text());

    return false;
    }

QSqlQuery query(db);
query.exec("create table student (id int primary key, " "name varchar(20))");
query.exec("insert into student values(0, 'first')");
query.exec("insert into student values(1, 'second')");
return true;
}

图片说明

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

4条回答

为你推荐