用unixODBC連接
創(chuàng)新互聯建站咨詢熱線:13518219792,為您提供成都網站建設網頁設計及定制高端網站建設服務,創(chuàng)新互聯建站網頁制作領域10多年,包括履帶攪拌車等多個方面擁有多年的網站推廣經驗,選擇創(chuàng)新互聯建站,為網站錦上添花。
記錄步驟,詳細細節(jié)請自己問百度
首先需要安裝freetds
cd freetds-0.91
./configure --prefix=/usr/local/freetds --enable-msdblib --with-tdsver=7.1 // 注意這里用7.1 因為最高是7.2 如果用7.2會默認5.0
make make install
當然我推薦使用ODBC+freetds 畢竟這樣PHP可以更好的支持
所以先安裝 unixODBC
cd unixODBC-2.3.1
./configure --prefix=/usr/local/unixODBC
make make install
然后freetds需要如下配置
./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC --enable-msdblib --with-tdsver=7.1
make make install
配置ODBC
cd /usr/local/unixODBC/etc
vi odbcinst.ini
[TDS]
Description = MS-SQLServer
Driver = /usr/local/freetds/lib/libtdsodbc.so
Setup = /usr/local/freetds/lib/libtds.so
FileUsage = 1
保存退出
vi odbc.ini
[mssql]
Driver = TDS
Server = 192.168.1.2
Database = xxxDB
Port = 1433
Socket =
Option =
Stmt =
保存退出
現在可以測試連接SQLSERVER了
/usr/local/unixODBC/bin/isql -v mssql sa password
//mssql 是 odbc.ini里定義的節(jié)點名
完美成功。。。
當然別忘記去PHP動態(tài)的擴展ODBC組件
以前不可以,現在可以了。
linux的軟件安裝辦法可以參考下這里linuxprobe.com/chapter-01.html#15_RPM ,這里有1.5 RPM紅帽軟件包的安裝方法,具體我不清楚sqlserver是否已經上yum源了,如果上了,你直接使用
yum install sql-server 就可以了(不知道是不是這個名字,可以自己search下)
1,sql server在linux下不能安裝。。xp下能裝2000,2008企業(yè)版,2005只能裝精簡版和開發(fā)版。。如果不是海量數據庫,或者超過5用戶的話用起來是一樣的。
sql server在xp下安裝報錯的話,有兩種可能,1,你裝的是企業(yè)版。。2,你沒裝iis。。
擔心安全問題的話,就不要裝mssql server。最好的安裝linux+db2,如果你要求不是太高的話,就裝linux+oracle。。數據庫小的話就用mysql吧。
另外,站長團上有產品團購,便宜有保證
也可以通過如下代碼測試qt5是否支持SqlServer
#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) //列出Qt5所有支持的數據庫類型
qDebug() "\t" driver;
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
qDebug() "ODBC driver valid?" db.isValid(); //true為支持
}
輸出結果如下:
"QSQLITE""QMYSQL""QMYSQL3""QODBC""QODBC3""QPSQL""QPSQL7"ODBC driver valid? true
2. 若是沒有編譯,可以手動編譯了qt的ODBC插件。
可以通過編譯qt的時候加上 configure -plugin-sql-odbc來保證,也可以單獨編譯qt安裝包里的~\src\plugins\sqldrivers\odbcqmake -t vclib odbc.pronmake (注:windows中為mingw32-make)編譯后,在~\plugins\sqldrivers\下應該有qsqlodbcd4.dll(debug)或qsqlodbc4.dll
此時,可以用下面的程序,測試一下你T目前支持哪些數據庫訪問。
二、連接SQLServer
要注意的就是連接數據庫時使用的數據庫名,sqlserver和sqlite、mysql等是不同的,并不是直接寫入數據庫名稱。 而是DSN名。 如果你已經設置好了DSN,可以直接輸入DSN名。 如果沒有,可以采用DSN連接字符串直接連接ODBC數據庫。
1、直接設定DSN的字符串連接數據庫,很簡單。
/**
*函數介紹:創(chuàng)建數據庫連接
*輸入參數:
*返回值:無
*/
bool DataAccess::createConnection()
{
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() "\t" driver;
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
qDebug() "ODBC driver valid?" db.isValid();
// 注意,對于express版本數據庫, 一定要加\\sqlexpress這種后綴 SERVER=58.67.161.109\\sqlexpress
QString dsn = "DRIVER={SQL SERVER};SERVER=58.67.161.109;DATABASE=RDBS;UID=RDBS_USER;PWD=RDBS_USER_;";
db.setHostName("58.67.161.109"); //數據庫服務器,我這里不需要
//即使dsn中已經設置了UID和PASSWD,仍然需要執(zhí)行setUserName和setPassword的步驟
//還要注意這里的用戶名要有創(chuàng)建表的權限,不然創(chuàng)建下面的表student會不成功。
db.setDatabaseName(dsn); //數據庫名
db.setUserName("RDBS_USER");//登錄名,我再dsn里設置UID和PWD后,就不需要設置了
db.setPassword("RDBS_USER_");//密碼,我再dsn里設置UID和PWD后,就不需要設置了
if(!db.open ())
{
QSqlError error = db.lastError();
QMessageBox::warning (0, "Warning", QString("Failed to open database!Error:%1").arg(error.text()));
returnfalse;
}
returntrue;
}
不可以 sqlserver是微軟出的 只支持win系列, 如果非要堅持在linux安裝sqlserver的話 也不是完全沒辦法,可以安裝wine 不過沒什么意義
不能安裝。Ubuntu是一個完全基于Linux的操作系統,Ubuntu既適合服務器、也適合個人家用,而navicatforsqlserver是一套專為MircosoftSQLServer設計的強大數據庫管理及開發(fā)工具,在Ubuntu不能夠安裝navicatforsqlserver,只能更換系統才可以。