您的位置:首页 > 编程语言 > Qt开发

QT 4.7.0 使用odbc链接sqlserver 测试成功

2011-11-25 11:50 363 查看
#include <QApplication>

#include <QSqlDatabase>

#include <QStringList>

#include <QDebug>

#include <QtGui/QMessageBox>

#include <QtSql/QSqlError>

#include <QtDebug>

#include <QSqlQuery>

#include <QVariant>

int main(int argc, char* argv[]) {

QApplication app(argc, argv);

qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t" << driver;


QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "test");

db.setHostName("192.168.18.114");//如果dsn中已经含有SERVER,可以省略此句

QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=192.168.18.114;DATABASE=test");

//如果已经设定DSN,可以写为QString::fromLocal8Bit("SQLSERVER_DSN")

db.setDatabaseName(dsn);

//即使dsn中已经设置了UID和PASSWD,仍然需要执行setUserName和setPassword的步骤

db.setUserName("sa");

db.setPassword("sa123456");

if(!db.open()) {

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

db.lastError().text());

return -1;

}

QSqlQuery mquery=QSqlQuery::QSqlQuery(db);

bool isok=mquery.exec("select * from student;");

if (!isok)

{

db.close();

return -1;

}

//这个是必须的,因为查处的结果集当前位置不在第一条记录上。

mquery.next();

QString sID=mquery.value(0).toString();

QString sName=mquery.value(1).toString();

//清除结果集

mquery.clear();

// 如果该连接不再使用,就可以关闭。

db.close();

//这里是将从数据库读出的数据写到一个list控件里

qDebug() << sID;

qDebug() << sName;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: