Qt通过ODBC连接SQL Server2008实践总结
Qt连接数据库的方式很多,这里说明一种最常用也是最实用的方式,因为这种方式在Windows上开发程序使用起来非常方便,并且也是远程连接数据库所需要用到的方式。
前提工作:
在Win7下安装了SQL Server 2008,并在SQL Server中创建了数据库MyDB。
Qt通过ODBC连接SQL Server 2008概述:
Qt通过ODBC连接数据库时,使用的数据库名不是直接写入数据库名称,而是DSN名。
关于DSN的简要介绍:
原名:Data Source Name
中文名:数据源名称
DSN为ODBC定义了一个确定的数据库和必须用到的ODBC驱动程序。每个ODBC驱动程序定义为该驱动程序支持的一个数据库创建DSN需要的信息。就是说安装ODBC驱动程序以及创建一个数据库之后,必须创建一个DSN。
DSN名的使用方式有两种:
1、在操作系统中配置DSN;
2、在Qt程序代码中采用DSN连接字符串直接连接ODBC数据库。
下面详细介绍在操作系统中配置DSN方式下连接SQL Server 2008的操作过程
在操作系统中配置DSN
1、在Win7系统中配置DSN详细图解









2、配置好DSN后就可以在Qt程序中使用此DSN连接数据库了:
其中main.cpp代码如下:
#include <QtGui/QApplication>
#include "dialog.h"#include <QSqlDatabase>#include <QStringList>#include <QDebug>#include <QMessageBox>#include <QtSql>#include <QSqlQuery>int main(int argc, char *argv[]){QApplication a(argc, argv);Dialog w;w.show();QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");qDebug()<<"ODBC driver?"<<db.isValid();QString dsn = QString::fromLocal8Bit("QTDSN");db.setHostName("127.0.0.1");db.setDatabaseName(dsn);db.setUserName("sa");db.setPassword("198811200");if(!db.open()){qDebug()<<db.lastError().text();QMessageBox::critical(0, QObject::tr("Database error"), db.lastError().text());return false;}elseqDebug()<<"database open success!";QSqlQuery query(db);query.exec("select * from student");while(query.next()){//qDebug()<<query.value(0).toString();qDebug()<<query.value(1).toString();//qDebug()<<query.value(2).toString();//qDebug()<<query.value(3).toString();//qDebug()<<" ";}return a.exec();}
测试输出结果:
ODBC driver? true
database open success!
"李四 "
"王五 "
"赵六 "
"吴莉莉 "
"刘晓红 "
"陈丽芬 "
"正如因 "
"zhu "
参考:
http://www.xuebuyuan.com/619048.html
http://hi.baidu.com/hzau_edu/item/091aa61a12b4e98488a956a5
http://blog.163.com/luminary_fan/blog/static/1941080892013069100349/
如果出现错误,请确认如下配置正确:
1、

建议将SQL Server(MYSQLSERVER)、SQL Server(SQLEXPRESS)服务停止,避免冲突。
2、

注意:更改配置后,务必重新启动数据库服务器

Qt通过ODBC连接SQL Server2008实践总结的更多相关文章
- cenos6.5 64位下PHP远程连接sql server2008成功案例
准备工作: 1.sql server2008服务器(开放远程端口,默认为1433,我用的是192.168.1.129) 2.安装好php的centos服务器 步骤: 1.php安装mssql扩展.ce ...
- php5.2 连接 SQL Server2008
如果你见到下面这一段输出的话,那么你有福了!!!! Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => ...
- Java连接Sql Server2008
参考:http://weistar.iteye.com/blog/1744871 准备工作: 1.下载JDBC驱动包:http://www.microsoft.com/zh-cn/download/d ...
- java 连接sql server2008配置
Java 应用程序连接SQL Server2008 (Eclipse+JDK7.0+jdbc4.0.jar+Sql Server2008) 假设应用端的连接语句为: String url = &quo ...
- linux centos6.4 php连接sql server2008
1.安装SQL Server驱动freetds yum search freetds yum install freetds php-mssql 或者下载编译安装 2.修改/etc/freetds ...
- Unity3D(C#)连接SQL Server2008
首先部署安装sql server2008,添加Sql Manager. Unity3D连接需要在Unity2017\Editor\Data\Mono\lib\mono\unity文件下找到4个头文件l ...
- Apache Doris 通过ODBC连接SQL Server
社区有小伙伴有使用Doris ODBC外表连接SQL Server数据库,使用中遇到不知道驱动怎么安装,苦于我这边也没有SQL Server的环境,正好社区有用户使用了这个数据库,也安装ODBC驱动测 ...
- WAS6.1连接SQL Server2008数据库连接池配置
原文链接:http://www.cnblogs.com/lyr2012/archive/2012/06/13/2547804.html 说明:该步骤只适用与websphere 6.1.0.15之前的版 ...
- linux odbc连接sql server2014
首先坑爹呀!由于配置Zabbix 用到这个,网上资料一顿搜,一顿报错,调各种参数,依然无法连接,我竟无言以对: 这个只是项目的一小部分,只提供成功案例,没做深入研究,可以让遇到的兄弟少走弯路: 建议第 ...
随机推荐
- android 中theme.xml与style.xml的区别
from://http://liangoogle.iteye.com/blog/1848448 android 中theme.xml与style.xml的区别: 相同点: 两者的定义相同. <r ...
- python测试开发django-41.crispy-forms设计标签式导航菜单(TabHolder)
前言 xadmin的详情页面主要是用form_layout布局,学会了完全可以不用写html代码,也能做出很好看的页面. xadmin的html页面是用的Bootstrap3框架设计的,layout布 ...
- 关于unity里pbr技术和材质 unity5默认shader和传统的对比
刚开始也不知道什么是pbr (Physically Based Rendering)后来才发现这是一种新的渲染方式 与之对应的是材质是pbs(Physically Based Shader) unit ...
- localhost与127.0.0.1及本机ip的区别
很多人会接触到这个ip地址127.0.0.1.也许你会问127.0.0.1是什么地址?其实127.0.0.1是一个回送地址,指本地机,一般用来测试使用.大家常用来ping 127.0.0.1来看本地i ...
- TextView 中文文档
属性名称 描述 android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all) ...
- JAVA生成并导出json文件
将一个list集合转换成json文件并导出: 数据集合: List<Object> agencyList = new ArrayList<Object>(); Map<S ...
- 大话+图说:Java字节码指令——只为让你懂
前言 随着Java开发技术不断被推到新的高度,对于Java程序员来讲越来越需要具备对更深入的基础性技术的理解,比如Java字节码指令.不然,可能很难深入理解一些时下的新框架.新技术,盲目一味追新也会越 ...
- Unexpected identifier in composer-common/lib/cardstore/businessnetworkcardstore.js:54
c错误描述 Unexpected identifier in composer-common/lib/cardstore/businessnetworkcardstore.js:54 yo hyper ...
- SharePoint2013 以其他用户登录和修改AD域用户密码 功能
sharepoint默认是没有修改AD密码 和切换 用户的功能,这里我用future的方式来实现. 部署wsp前: 部署后: 点击以其他用户身份登录 点击修改用户密码: 这里的扩展才菜单我们用Cust ...
- $.getJSON的缓存问题处理
今天遇到jQuery.getJSON的缓存问题.如果其调用的url之前曾经调用过的话,回调函数就会直接在缓存里面取得想要得值,而不是进入到后台,调用存储过程了.这是一个比较郁闷的问题.不修改的话,用户 ...