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"





  • 相关阅读:
    HNOI2018退役记
    codeforces 960G Bandit Blues
    codeforces 933D A Creative Cutout
    tyvj1953 Normal
    loj6119 「2017 山东二轮集训 Day7」国王
    codeforces 293E Close Vertices
    bzoj1808 [Ioi2007]training 训练路径
    bzoj2219 数论之神
    bzoj4361 isn
    loj2064[HAOI2016]找相同字符
  • 原文地址:https://www.cnblogs.com/chengkeke/p/5417383.html
Copyright © 2011-2022 走看看