在QT中使用addDataBase添加一个数据库连接,其中第一个参数应该填入使用数据库驱动的类型,如QMYSQL、QSQLLITE、QSQLPSSQL等。
  1. QSqlDatabase QSqlDatabase::addDatabase(const QString & type, const QString & connectionName = QLatin1String( defaultConnection ))

第一个参数指定了应用程序使用哪一种数据库驱动访问数据库。

       Qt自己建立了不同数据库的驱动,这些驱动会调用相应DBMS的编程接口对数据库进行操作。下面给出QtSql模块定义的驱动类型,与对应的DBMS。
QDB2
IBM Db
QIBASE Borland InterBase
QMYSQL MYSQL
QOCI 甲骨文公司
QODBC ODBC(包括微软公司的Server服务器)
QPSQL PostgreSQL的7.3版以及更高版
QSQLITE QLite第三版
QSQLITE2 QLIte2第二版
QTDS sybase自适应服务器

由图可以看出其中只有QODBC比较特殊,QODBC驱动调用ODBC驱动接口,ODBC对数据库的操作不依赖任何的DBMS,不直接于DBMS打交道,它将所有的数据库操作交给对应DBMS驱动程序去完成。因此在使用QODBC时候有两种连接方式:
  • DNS字符串
  1. QString dsn = "DRIVER={SQL SERVER};SERVER=58.67.161.109;DATABASE=RDBS;UID=RDBS_USER;PWD=RDBS_USER_7010387;";
  2. //还要注意这里的用户名要有创建表的权限,不然创建下面的表student会不成功。
  3. db.setDatabaseName(dsn); //数据库名 db.setUserName("RDBS_USER");//登录名,我再dsn里设置UID和PWD后,就不需要设置了
  4. if(!db.open ())
  5. {
  6. QSqlError error = db.lastError();
  7.          return false;
  8. }

  • 手动设置ODBC数据源

控制面板->系统和安全->管理工具->数据源(ODBC)

代码:

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

db.setDatabaseName("testdsn");

db.setUserName("sa");

db.setPassword("scada");

三、下面是ODBC和OLEDB的连接字符串写法:

1、ODBC连接字符串

//适合数据库类型 连接方式

access

"Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"

dBase

"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"

oracle

"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"

MSSQL server

"Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;"

MS text

"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"

Visual Foxpro

"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"

MySQL

"Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"

SQLite

"Driver={SQLite3 ODBC Driver};Database=D:\SQLite\*.db"

PostgreSQL

"Driver={PostgreSQL ANSI};server=127.0.0.1;uid=admin;pwd=pass;database=databaseName"

Qt连接sql server数据库遇到的问题的更多相关文章

  1. python 使用pymssql连接sql server数据库

    python 使用pymssql连接sql server数据库   #coding=utf-8 #!/usr/bin/env python#------------------------------ ...

  2. NetBeans连接SQL server数据库教程

    不废话,直接开始 1.下载sqljdbc.jar 可以从微软中国官方网站下载 SQLJDBC微软中国 笔者提供一个网盘链接Sqljdbc.jar 4个压缩包视版本选择,SQL 2012 用sqljdb ...

  3. 【转】PowerShell 连接SQL Server 数据库 - ADO.NET

    转至:http://www.pstips.net/connect-sql-database.html PowerShell 通过ADO.NET连接SQL Server数据库,并执行SQL脚本.工作中整 ...

  4. JDBC连接sql server数据库及其它

    JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...

  5. ThinkPHP连接sql server数据库

    亲身经历,在网上找连接sql server数据库的方法,还是不好找的,大多数都是照抄一个人的,而这个人的又写的不全,呵呵,先介绍一下我连接的方法吧.如果你是用THINKPHP连接,那么最重要的就是配置 ...

  6. JDBC连接sql server数据库的详细步骤和代码

    JDBC连接sql server数据库的详细步骤和代码 JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Ja ...

  7. python连接sql server数据库实现增删改查

    简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...

  8. 详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作

    总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. ...

  9. Windows 2008服务器环境PHP连接SQL Server数据库的配置及连接方法

    背景: PHP程序常用的数据库是Mysql数据库,但是由于实际项目需要,要求PHP网站连接SQL Server数据库查询一些必要信息.因此,本文就来给大家介绍一下如何安装及配置PHP扩展,可以实现PH ...

随机推荐

  1. luoguP4768 [NOI2018]归程

    传送门 kruskal重构树: kruskal合并两个联通块时合并的边一定是联通块中权值最大的边,小于等于这条边的边所能联通的所有点在这个联通块中. 在合并两个联通块的时候新建一个点作为两个联通块代表 ...

  2. 绿色版mysql 免安装使用(转载)

    MySQL绿色版的安装(mysql-5.6.22-win32.zip) Posted on 2015-01-31 23:21 卒子 阅读(10739) 评论(2) 编辑 收藏 由于工作需要最近要开始研 ...

  3. linux 网络监控软件nethogs iftop

    1.nethogs yum -y install nethogs 装上了这个工具之后,使用起来就非常简单了.敲入nethogs 就会给出所有的信息.看下面的例子. root@ubuntu2:~# ne ...

  4. HDU 3607 线段树+DP+离散化

    题意:从左往右跳箱子,每个箱子有金币数量,只能从矮处向高处跳,求最大可获得金币数,数据规模1<=n<=1e5. 显然是一个dp的问题,不难得出dp[ i ] = max(dp[j] )+v ...

  5. neo4j常用cypher语句

    阅读更多 1.删除带有关系的节点   a.先删除关系 match (n:Node)-[r:关系名称]-() where (n...条件) delete r   b.删除节点 match (n:Node ...

  6. Pod 私有仓库构建

    Pod 私有仓库构建 创建`私有仓库索引库`(iOS) 添加`私有仓库索引库`到本地repo管理 创建自己的`组建库工程 上传`组建库工程`到`私有仓库索引库` App工程调用`组建库工程` 目的 私 ...

  7. shell 通配符,管道符,输入/输出重定向,命令置换

    1. echo 输出   [echo 输出的内容 ]把内容输出到终端上 如果字符串使用双引号,echo命令原样输出   [ echo "hello       world" ]  ...

  8. mysql 复制原理详解

    http://www.cnblogs.com/kristain/articles/4142970.html

  9. sql (4) key and Join

    新建表: "Persons" 表:Id_P LastName FirstName Address City1 Adams John Oxford Street London2 Bu ...

  10. 配置类一@CrossOrigin

    @CrossOrigin是用来处理跨域请求的注解 跨域:指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制. 所谓同源是指,域名,协议,端口 ...