• 4988阅读
  • 5回复

QT连接SQLServer的问题 [复制链接]

上一主题 下一主题
离线sjyzhxw
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-07
  1. #include <QtCore/QCoreApplication>
  2. #include <QtSql/QSqlDatabase>
  3. #include <QtSql>
  4. #include <QStringList>
  5. #include <QDebug>
  6. struct Student
  7. {
  8.     QString id;
  9.     QString name;
  10.     QString sex;
  11. };
  12. int main(int argc, char *argv[])
  13. {
  14.     QCoreApplication a(argc, argv);
  15.     QSqlDatabase db=QSqlDatabase::addDatabase("QODBC","SQLServer");
  16.     QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=127.0.0.1;DATABASE=mydb");
  17.     db.setDatabaseName(dsn);
  18.     db.setUserName("admin");
  19.     db.setPassword("735657");
  20.     if(db.open()) {
  21.         qDebug()<<"OK!";
  22.     }
  23.     else{
  24.         qDebug()<<"Error!";
  25.     }
  26.     QSqlQuery query(db);
  27.     QSqlError error=query.lastError();
  28.     qDebug()<<error.number();
  29.     if(!query.isValid()){
  30.         qDebug()<<"Invalid!";
  31.     }
  32.     while(query.next()){
  33.         Student student;
  34.         student.id=query.value(0).toString();
  35.         student.name=query.value(1).toString();
  36.         student.sex=query.value(2).toString();
  37.         qDebug()<<"ID: "<<student.id<<" Name: "<<student.name<<" Sex: "<<student.sex;
  38.     }
  39.     return a.exec();
  40. }
  41. [color=#008ef1]结果分别是
  42. OK
  43. -1
  44. invalid
  45. 为什么不对?
  46. 初学,望大家指教[/color]


离线ppdayz

只看该作者 1楼 发表于: 2012-05-12
回 楼主(sjyzhxw) 的帖子
你的用法
QSqlQuery query(db);

再看下帮助就知道了。。
QSqlQuery::QSqlQuery ( QSqlDatabase db )Constructs a QSqlQuery object using the database db. If db is invalid, the application's default database will be used.
你的这个QSqlQuery query(db);
针对db构建了一个查询。。。这个查询是空的。。。当然会错。
离线btptboy

只看该作者 2楼 发表于: 2012-06-21
QSqlQuery query(db)后还没完呢,
应该执行query.exec(sql 语句),你没有执行sql语句
我思故我在
离线atmats
只看该作者 3楼 发表于: 2012-07-10
我在windows下使用Qt4.8连不上远程的sqlserver2005数据库,求大侠们帮忙解决一下啊
离线XChinux

只看该作者 4楼 发表于: 2012-07-12
引用第3楼atmats于2012-07-10 16:11发表的  :
我在windows下使用Qt4.8连不上远程的sqlserver2005数据库,求大侠们帮忙解决一下啊

首先 ,你确认能用其它客户端工具或ODBCAD32中已经能连接上远程SQL Server 2005了吗?如果不能的话,得先在SQL Server 2005上启用TCP连接。在Qt这边要有QODBC驱动,即qsqlodbc。你可自己编译或者找现成的。最后,需要程序启动时能找到正确的插件目录,推荐用qt.conf文件(查手册qt.conf)
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线alexltr

只看该作者 5楼 发表于: 2012-09-16
mark
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
快速回复
限100 字节
 
上一个 下一个