此时,可以用下面的程序,测试一下你的QT目前支持哪些数据库访问。
#include <QApplication> #include <QSqlDatabase> #include <QStringList> #include <QDebug> int main(int argc, char* argv[]) { QApplication app(argc, argv); qDebug() << "Available drivers:"; QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() << "\t" << driver; QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); qDebug() << "ODBC driver valid?" << db.isValid(); }
如果输出中有
Available drivers:
"QSQLITE" "QODBC4" "QODBC" ODBC driver valid? true就说明已经可以成功支持ODBC了。
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'"