zoukankan      html  css  js  c++  java
  • Qt连接sql server数据库遇到的问题

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

           Qt自己建立了不同数据库的驱动,这些驱动会调用相应DBMS的编程接口对数据库进行操作。下面给出QtSql模块定义的驱动类型,与对应的DBMS。
    QDB2
    IBM Db
    QIBASEBorland InterBase
    QMYSQLMYSQL
    QOCI甲骨文公司
    QODBCODBC(包括微软公司的Server服务器)
    QPSQLPostgreSQL的7.3版以及更高版
    QSQLITEQLite第三版
    QSQLITE2QLIte2第二版
    QTDSsybase自适应服务器

    由图可以看出其中只有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"





  • 相关阅读:
    微信 token ticket jsapi_ticket access_token 获取 getAccessToken get_jsapi_ticket方法
    PHP 日志 记录 函数 支持 数组 对象 新浪 sae 环境 去掉 空格 换行 格式化 输出 数组转字符串
    原生 原始 PHP连接MySQL 代码 参考mysqli pdo
    PHP 数字金额转换成中文大写金额的函数 数字转中文
    使用PHPMailer发送带附件并支持HTML内容的邮件
    设置输出编码格式 header 重定向 执行时间 set_time_limit 错误 报告 级别 error_reporting
    html5 bootstrap pannel table 协议 公告 声明 文书 模板
    指向指针的指针
    二级指针
    c语言:当指针成为参数后
  • 原文地址:https://www.cnblogs.com/chengkeke/p/5417383.html
Copyright © 2011-2022 走看看