Translate

2012/07/23

Open dbExpress 安裝

http://sourceforge.net/projects/open-dbexpress/files/dbxoodbc%202012%20-%20dbx%20ODBC%20driver/dbxoodbc_3_2012_0716dev.7z/download

一、首先是先安裝bpl到RAD Studio裡面
dbxoodbc\lib\{%DelphiVersion%}\dbxoodbc*.bpl
以XE2來看的話,就會是在「dbxoodbc\lib\delphi-2012(16)XE2\win32」(32bit)目錄裡面

二、接下來再把dbxoodbc\lib\dbxoodbc_driver\(%Platform%)\release目錄裡的相關檔案複製到系統路徑
以Win32系統為例,就是把「dbxoodbc\lib\dbxoodbc_driver\win32\release」複製到Delphi安裝目錄裡的bin資料夾下,也就是「{%DELPHI}\Bin」

三、接下來是要註冊 dbxconnections.ini 及 dbxdrivers.ini
說真的,這兩個檔案不是放在特定資料夾中,常常會找不到它們
以我的XE2為例,它們是放置在「c:\users\public\documents\RAD Studio\dbExpress\9.0」目錄中,如果你的電腦沒有的話,可以在底下的機碼中尋找「[HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\DBExpress」

台灣大多數的人都是用SQL Server,所以我們就以它的設定為範本:
===dbxconnections.ini===
;--------------------------------------------------------------------------------------------------
[dbxoodbc_SS_DirectMode]
DriverName=DbxSQLServer
GetDriverFunc=getSQLDriverODBCW
VendorLib=sqlsrv32.dll;sqlncli10.dll;sqlncli.dll;odbc32.dll
Trusted_Connection=No
User_Name=name
Password=secret
BlobSize=-1
RowsetSize=20
OpenOdbc TransIsolation=ReadCommited
Trim Char=True
Database=?
ConnectionString=coCatPrefix=DATABASE;SERVER=?
MetaDataPackageLoader=TDBXOpenODBCMetaDataCommandFactoryMSSQL
DriverPackageLoader=TDBXDynalinkDriverLoaderOpenOdbc
;--------------------------------------------------------------------------------------------------
===dbxdrivers.ini===
[Installed Drivers]
DbxSQLServer=1
;--------------------------------------------------------------------------------------------------
[DbxSQLServer]
LibraryName=dbxoodbc.dll
ProductName=DbxOpenODBC
DriverUnit=Dbx34Drv
MetaDataPackageLoader=TDBXOpenODBCMetaDataCommandFactoryMSSQL
DriverPackageLoader=TDBXDynalinkDriverLoaderOpenOdbc
DbxSQLServer TransIsolation=ReadCommited
GetDriverFunc=getSQLDriverODBCW
VendorLib=sqlsrv32.dll;sqlncli10.dll;sqlncli.dll;odbc32.dll
DATABASE=(Database Name)
Trusted_Connection=YES
User_Name=
Password=
ConnectionString=coCatPrefix=DATABASE;Server=(Server Name)

[DbxSQLServer TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2
;--------------------------------------------------------------------------------------------------
四、接下來我們要在bpr裡面,增加一個uses模組項目:
uses DbxXXDrv, ...

五、開啟XE2並建立一個新專案,再drop一個TSQLConnection到裡面,設定
ConnectionName = dbxoodbc_SS_DirectMode
LoginPrompt = False
接下來要注意的是
Params裡面的項目
============
DriverName=DbxSQLServer
GetDriverFunc=getSQLDriverODBCW
VendorLib=sqlsrv32.dll;sqlncli10.dll;sqlncli.dll;odbc32.dll
Trusted_Connection=No
User_Name=name
Password=secret
BlobSize=-1
RowsetSize=20
OpenOdbc TransIsolation=ReadCommited
Trim Char=True
Database=?
ConnectionString=coCatPrefix=DATABASE;SERVER=?
MetaDataPackageLoader=TDBXOpenODBCMetaDataCommandFactoryMSSQL
DriverPackageLoader=TDBXDynalinkDriverLoaderOpenOdbc
=============

先看紅色區塊
Trusted_Connection是指登入方式:
Yes = Windows 驗證
No = SQL Server 驗證
一般都是No,然後設定User_Name和Password
如果設定為Yes,則User_Name和Password的內容要記得清空

再來看綠色區塊中
DATABASE=?」 問號就是填入要登入的資料庫名稱

ConnectionString=coCatPrefix=DATABASE;SERVER=?」問號就是要填入要登入的伺服器名稱
在這邊如果是Express版本,則是要在後面加上「\SQLExpress」

辛苦的設定終於完成,接下來就是將TSQLConnection的Connected設為「True」。
連線成功!

=========底下是 Sryang大大 熱情提供更為簡單的連線技巧=========

dbxdrivers.ini

[DbxSQLServer]
LibraryName=dbxoodbc.dll
ProductName=DbxOpenODBC
DriverUnit=Dbx34Drv
MetaDataPackageLoader=TDBXOpenODBCMetaDataCommandFactoryMSSQL
DriverPackageLoader=TDBXDynalinkDriverLoaderOpenOdbc
DbxSQLServer TransIsolation=ReadCommited
GetDriverFunc=getSQLDriverODBCW
VendorLib=sqlsrv32.dll;sqlncli10.dll;sqlncli.dll;odbc32.dll
Database=(database name)
Trusted_Connection=YES
User_Name=
Password=
ConnectionString=
coCatPrefix=DATABASE;SERVER=(server name)


IDE 中 Data Explorer 的使用



利用"Add New Connection "新建一個連線設定



建立後修改參數,如下圖



這個畫面不用填資料,按 Advanced 按鈕
(Test Connection 不可用,會有錯誤訊息,不過不用理他)


填入 Database



在 connectionstring 項目內 "SERVER=" 後面輸入要登入的資料庫伺服器


設定好的連線,可以直接拖曳到 Form 或者 DataModule 裡面


將 Connected 屬性設定為 True 就可連線











你今天 Open 了嗎?

沒有留言:

張貼留言

Why I Choose Delphi! (CHT)

扣除使用 C++ Builder 的時間,我實際使用 Delphi 的時間點是 2012 年,它帶我看到了不一樣的世界,見識到世界各地的高手使用 Delphi 創造出他們引以為豪的產品,並且無私的分享他們的學習知識,使我的技術能力得以跟隨他們的能力提升。 最最讓我喜歡的...