免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
QT連接SQL Server(ODBC)

QT提供了對多種數(shù)據(jù)庫的訪問支持,對SQL Server也可以通過ODBC來進行訪問。
要想順利訪問SQL Server。 首先要保證以下幾點:
1. QT編譯時已經(jīng)編譯了QtSql
2. 編譯了ODBC插件。可以通過 configure -plugin-sql-odbc來保證,也可以單獨編譯~\src\plugins\sqldrivers\odbc
qmake -t vclib odbc.pro
qmake
nmake
編譯后,在~\plugins\sqldrivers\下應(yīng)該有qsqlodbcd4.dll(debug)或qsqlodbc4.dll
此時,可以用下面的程序,測試一下你的QT目前支持哪些數(shù)據(jù)庫訪問。

#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 就說明已經(jīng)可以成功支持ODBC了。
3. 要連接數(shù)據(jù)庫,有3種方式:
參考下面的連接:QT連接ODBC數(shù)據(jù)庫
要注意的就是連接數(shù)據(jù)庫時使用的數(shù)據(jù)庫名,和sqlite等是不同的,并不是直接寫入數(shù)據(jù)庫名稱。
而是DSN名。
如果你已經(jīng)設(shè)置好了DSN,可以直接輸入DSN名。 如果沒有,可以采用DSN連接字符串直接連接ODBC數(shù)據(jù)庫。

例如:

//下面例子連接到10.0.0.2上的sql server名為temp的數(shù)據(jù)庫上。 程序中指定此連接的名稱為dbTemp

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

db.setHostName("10.0.0.2"); //如果dsn中已經(jīng)含有SERVER,可以省略此句

QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=10.0.0.2;DATABASE=temp");

//如果已經(jīng)設(shè)定DSN,可以寫為QString::fromLocal8Bit("SQLSERVER_DSN")

db.setDatabaseName(dsn);

//即使dsn中已經(jīng)設(shè)置了UID和PASSWD,仍然需要執(zhí)行setUserName和setPassword的步驟

db.setUserName("sa");

db.setPassword("xxxxxx");

if(!db.open()) {

        QMessageBox::critical(0, QObject::tr("Database Error"),

            db.lastError().text());

        return false;

}

return true;


如果dsn名設(shè)錯,將會在db.open()時出現(xiàn)“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified QODBC3: Unable to connect”
“[Microsoft][ODBC 驅(qū)動程序管理器] 未發(fā)現(xiàn)數(shù)據(jù)源名稱并且未指定默認驅(qū)動程序 QODBC3: Unable to connect”錯誤。
其他類型數(shù)據(jù)庫應(yīng)該修改dsn字符串與其相適應(yīng):
下面是ODBC和OLEDB的連接字符串寫法:

ODBC連接

適合數(shù)據(jù)庫類型 連接方式
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連接

適合的數(shù)據(jù)庫類型 連接方式
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'"

參考:
http://www.gamedev.net/community/forums/topic.asp?topic_id=523765
http://www.qtcn.org/bbs/read.php?tid=12414
http://www.qtcn.org/bbs/read.php?tid=7197&keyword=SQL%20Server
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
如何在ASP中連接MySQL數(shù)據(jù)庫
袖珍數(shù)據(jù)庫連接查詢手冊
Delphi操作Excel的技巧
引用 QTP手動連接SQL Server/DB2/Oracle數(shù)據(jù)庫的方法
DBF表與SQL Server表的導(dǎo)入、導(dǎo)出
語言創(chuàng)新 VB 6.0與大型數(shù)據(jù)庫的無“數(shù)據(jù)源”連接
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服