我是新手,在用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;
}