用dbExpress連線資料庫的一點記錄

2021-04-02 21:57:41 字數 3343 閱讀 7228

delphi

為我們提供了強大的資料庫連線控制項,如

dbexpress

,其執行效率不亞於

ado。有關於它的一些使用方法,我提一下自己總結的愚見。

一、連線

mysql

資料庫的問題:

1.建立乙個工程,在窗體上放置控制項

tsqlconnection

,此控制項是

delphi

連線mysql

的關鍵一步,其設定大體如此:雙擊

tsqlconnection

控制項開啟設定窗,

在視窗右側

key欄下

drivername

中設定資料庫型別(目前

dbexpress

只支援mysql

、db2

、informix

、interbase

、orcale

五種資料庫),我們設定

」mysql」

;hostname

欄用於指定被連線的資料庫所在的計算機,此處設定為伺服器資料庫

server

;database

用於指定資料庫名稱,指定為

test

;user_name

指定了此

hostname

下的使用者名稱,為

root

。至此,連線選項配置完成。

1.再將

tsqlconnection

控制項下的

libraryname

屬性改為「

dbexpmys.dll

」。 2.

將connected

屬性改為

true

,即可連線成功。

注:若

tsqlconnection

控制項的loginprompt

屬性為true,

在連線時會彈出連線窗,如果資料庫無密碼,直接確定即可。

二、運算元據庫

連線成功之後,在窗體放入

tsqlquery

控制項,將

sqlconnection

屬性設定為

sqlconnection1

即可執行

sql語句運算元據庫。

三、顯示資料

資料顯示通常採用

tdbgrid

控制項,但此控制項是雙向的,而

tsqlconnection

和tsqlquery

是單擊資料集,即唯讀不寫。直接將

tdbgrid

連線到tsqlquery

上是行不通的。我們可以採用多層資料的辦法解決,即放置

tclientdataset

和tdatasetprovider

元件先將

tdbgrid.datasource->datasource

datasource.dateset->clientdataset

clientdataset.providername->datasetprovider

datasetprovider.dateset->sqlquery

;之後,將

clientdataset.active

屬性置為

true

即可在tdbgrid

上顯示所連資料庫。

四、程式設定資料庫

程式設定

tsqlconnection

控制項的各引數與手動設定大體相同,但應遵守一定的順序,不可顛倒,如下所示:

sqlconnection2.drivername := 'mysql';

sqlconnection2.params.add('drivername=mysql');

sqlconnection2.params.add('hostname=server');

sqlconnection2.params.add('database=test');

sqlconnection2.params.add('user_name=root');

sqlconnection2.params.add('password=');

sqlconnection2.params.add('blobsize=-1');

sqlconnection2.params.add('errorresourcefile=');

sqlconnection2.params.add('localecode=0000');

sqlconnection2.vendorlib := 'libmysql.dll';

sqlconnection2.getdriverfunc := 'getsqldrivermysql';

sqlconnection2.libraryname := 'dbexpmys.dll';

sqlconnection2.connectionname := 'cao';

sqlconnection2.connected := true;

clientdataset2.active := true;

即:先設定

drivername

,再設定

params

,最後才是

vendorlib

、getdriverfunc

、libraryname

、connectionname

等,再次dbexpmys.dll(92k)是dbexpress自身的連線庫,也可為dbexpmysql.dll(93.5k),另外,libmysql.dll(212k)是mysql自身使用的介面庫,我檢視了一下libmysql.dll內有81個介面函式,有此兩個庫,即可連線mysql,但必需注意,這些介面庫要麼與exe平級存在,要麼存在於系統盤system32目錄下。

五、在介面上更新資料

tsqlconnection

是單向資料集,不能在介面上直接修改,但我們用

tclientdataset

和tdatasetprovider

建成了多層結構,在修改的時候通過

tclientdataset

控制項的方法即可更新到資料庫中。

注意:由於mysql4.0以上的版本採用了密碼加密技術,有可能導至dbexpress在連線4.0以上的服務時出現無效的使用者名稱或密碼的提示,起初我也百思不得其解,總認為自己服務裝得有問題,後來,經高人指點得知此因。具體解決辦法如下:

1、登入mysql伺服器(在mysql安裝目錄下進入bin中輸入命令:mysql -hmysqlhost  -umysqluser  -pmysqlpassword;)

2、在mysql>提示符下輸入set password for 『需要修改的使用者名稱』@'mysql伺服器的ip' = old_password('newpwd');

用oledb連線資料庫

odbc,oledb,ado,adox的關係 odbc 曾經的資料庫通訊標準 oledb 在一切物件化的趨勢下,ms打算用它取代odbc.oledb分兩種 直接的oledb和面向odbc的oledb,後者架構在odbc上,這樣沒有自己的oledb提供者的資料庫也可以使用oledb的特點了。ado 其...

用mysqli連線資料庫

connect to a mysql server 連線資料庫伺服器 link mysqli connect localhost the host to connect to 連線mysql位址 jian the user to connect as 連線mysql使用者名稱 123456 the ...

php連線資料庫有什麼用,PHP連線資料庫操作

php要對資料庫進行操作,首先要做的是與資料庫建立連線,通常我們使用mysqli connect函式進行資料庫連線,該函式需要指定主機的位址 mysql使用者名稱 mysql密碼和資料庫名稱。mysqli connect 函式 功能函式開啟乙個到 mysql 伺服器的新的連線 語法mysqli co...