Qt5.5 连接Access2007数据库
来源:互联网 发布:家纺品牌 知乎 编辑:程序博客网 时间:2024/06/09 08:03
测试一下你的QT目前支持哪些数据库访问。
#include <QCoreApplication>#include <QSqlDatabase>#include <QStringList>#include <QDebug>#include <QStringList>#include <QSqlError>#include <QSqlIndex>#include <QSqlRecord>#include <QSqlQuery>#include <QVariant>#include <QSqlDatabase>#include <QSqlError>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); qDebug() << "Available drivers:"; QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() << "\t" << driver; QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "test"); qDebug() << "ODBC driver valid?" << db.isValid();}
输出:
Available drivers:
“QSQLITE”
“QMYSQL”
“QMYSQL3”
“QODBC”
“QODBC3”
“QPSQL”
“QPSQL7”
ODBC driver valid? true
“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect”
要注意的就是连接数据库时使用的数据库名,和sqlite等是不同的,并不是直接写入数据库名称,而是DSN名.
设置DSN ,查看本机数据源中access对应的驱动,在 dns 字符串中将 DRIVER 的值替换相应驱动.
控制面板-管理工具-数据源(ODBC)
QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=C:/DataBase/test.mdb"); db.setDatabaseName(dsn); db.setPassword("123"); bool ok = db.open(); QString out_str; QTextStream out(stdout); QSqlError err; QSqlRecord record; if(ok){ qDebug() << "Access Connect OK!"; qDebug() << db.lastError().text(); }else{ qDebug() << "Access Connect Fail!"; out_str="open fail\n"; out << out_str <<endl; err = db.lastError(); out_str = err.databaseText(); out << out_str <<endl; out_str = err.driverText(); out << out_str <<endl; }
下面是ODBC和OLEDB的连接字符串写法:
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"
OLEDB连接
适合的数据库类型 连接方式
access "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;"
oracle "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"
MS SQL Server "Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;"
MS text "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties'text;FMT=Delimited'"
0 0
- Qt5.5 连接Access2007数据库
- vc6.0连接access2007数据库
- 如何在C#连接ACCESS2007数据库
- ASP连接ACCESS2007数据库时注意事项
- ASP连接数据库ACCESS2007的代码
- C#连接Access2007数据库代码实例完整版
- ADO 连接带密码Access2007()数据库字符串
- C#连接Access2007数据库代码实例完整版
- 连接Access2007/2010数据库的字符串
- qt5.5连接mysql数据库
- vb.net连接access2007
- Qt5.5连接Mysql数据库(数据库版本为5.5)
- qt5连接sqlite数据库实例
- Qt5.2 连接MySQL数据库
- qt5连接sqlite数据库实例
- QT5.3连接mysql数据库
- QT5.X连接MYSQL数据库
- QT5.X连接MYSQL数据库
- 用Python实现最速下降法求极值
- HDU 2435 There is a war(修改或添加一条边的最小割 )经典
- 支持ajax的爬虫
- 事件查看器ID 1041
- 微信开发总结 二
- Qt5.5 连接Access2007数据库
- 1098. Insertion or Heap Sort (25)
- hkpDynamics->hkpRigidBodyCinfo
- web前端工具(配色图片图标)
- Linux mkdir、tar 和 kill 命令的 4 个有用小技巧
- 字符数组,字符指针,sizeof,strlen总结
- 微信开发总结 三
- hkpDynamics->hkpMotion
- tomcat的work目录