k_woon 2015-01-16 12:08 采纳率: 40%
浏览 4910

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

我是新手,在用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条回答

  • oyljerry 2015-01-17 14:27
    关注

    先后看数据库能否访问,然后就是odbc是否正确

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作