• 9644阅读
  • 2回复

QSqlQuery::exec: database not open [复制链接]

上一主题 下一主题
离线wlinqiunan
 

只看楼主 倒序阅读 楼主  发表于: 2011-02-28
#ifndef CONNECTION_H
#define CONNECTION_H
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlQuery>
static bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "dbTemp");
    db.setHostName("NAN-B1C70048FC7");
    QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=NAN-B1C70048FC7;DATABASE=nan;");
    db.setDatabaseName(dsn);
     //db.setUserName("");
    //db.setPassword("");
    if (!db.open())   //连接的时候这里的db.open() 为1   表示数据已经打开 没有出错误信息

    {
        QMessageBox::critical(0, qApp->tr("Cannot open database"),
            qApp->tr("Unable to establish a database connection."
                     ), QMessageBox::Cancel);
        return false;
    }
//下面建表也建不成功
           QSqlQuery query;
        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')");
        query.exec("insert into student values(2, 'third')");
        query.exec("insert into student values(3, 'fourth')");
        query.exec("insert into student values(4, 'fifth')");
    return true;
}
#endif // CONNECTION_H
//最后输出信息是这样  说数据库没打开 请问各位大侠这是什么问题
Starting C:\QTPRO\querynan-build-desktop\debug\querynan.exe...
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open

离线liuxingfly
只看该作者 1楼 发表于: 2011-03-25
  QSqlQuery query(db);
离线于晓飞
只看该作者 2楼 发表于: 2011-07-28
回 1楼(liuxingfly) 的帖子
好像也没用啊
快速回复
限100 字节
 
上一个 下一个