日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Delphi數(shù)據(jù)庫(kù):實(shí)現(xiàn)與實(shí)例 (delphi數(shù)據(jù)庫(kù)開發(fā)及精彩實(shí)例)

作為一款優(yōu)秀的編程語(yǔ)言,Delphi不僅僅在桌面應(yīng)用程序的開發(fā)領(lǐng)域有著卓越表現(xiàn),對(duì)于數(shù)據(jù)庫(kù)的操作也有很高的支持。Delphi的數(shù)據(jù)庫(kù)操作不僅僅可以輕松地讀取和修改數(shù)據(jù),而且還可以在應(yīng)用程序內(nèi)部輕松地創(chuàng)建、打開和關(guān)閉數(shù)據(jù)庫(kù)連接。本文將詳細(xì)介紹使用Delphi進(jìn)行數(shù)據(jù)庫(kù)操作的實(shí)現(xiàn)方法,并提供實(shí)際示例,幫助讀者深入了解Delphi數(shù)據(jù)庫(kù)操作的細(xì)節(jié)。

創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、廣平網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為廣平等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

一、創(chuàng)建數(shù)據(jù)庫(kù)連接

實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作的之一步是建立一個(gè)數(shù)據(jù)庫(kù)連接。在Delphi中使用DBExpress來實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接,它是一組可視化組件,用于在Delphi應(yīng)用程序中連接和控制數(shù)據(jù)庫(kù)。下面我們來演示一下如何使用DBExpress建立一個(gè)數(shù)據(jù)庫(kù)連接。以MySQL數(shù)據(jù)庫(kù)為例:

1. 添加DBExpress組件庫(kù)

通過 “組件”-> “組件” 菜單,彈出組件窗口;

選擇按字母排序的“DBExpress”組件庫(kù),勾選 DBXMySQL 和 DBXCommon 組件,然后點(diǎn)擊確認(rèn)。

2. 配置連接

通過 “文件” -> “新建” -> “其他” -> “Data Explorer” 打開數(shù)據(jù)資源窗口,右鍵點(diǎn)擊 “connections” 組中的 “New Connection…”,彈出以下連接設(shè)置對(duì)話框:

填寫以下信息:

連接名稱:mysql連接

數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序:MySQL (DBXMySQL)

主機(jī)名稱或IP地址:127.0.0.1

端口號(hào):3306

用戶名:root

密碼:root

database:test(你需要先手動(dòng)在 MySQL中新建一個(gè)test數(shù)據(jù)庫(kù))

點(diǎn)擊Test連接按鈕,如果連接成功,則會(huì)彈出測(cè)試連接成功。

3. 使用連接

打開要使用連接的數(shù)據(jù)模塊,通過 “組件” -> “dbExpressSQLConnection1” (1),彈出以下SQL連接屬性窗口,點(diǎn)擊右側(cè)的“…”按鈕,在彈出的窗口中選擇剛才創(chuàng)建的mysql連接,點(diǎn)擊確認(rèn)保存。這時(shí),就可以在代碼中使用 TSQLConnection 控件了。

var

conn: TSQLConnection;

conn := TSQLConnection.Create(nil);

try

conn.ConnectionName := ‘dbExpressConnection1’;

conn.DriverName := ‘MySQL’;

conn.GetDriverFunc := ‘getSQLDriverMYSQL’;

conn.LibraryName := ‘dbxmys.dll’;

conn.Params.Add(‘User_name=root’);

conn.Params.Add(‘Password=root’);

conn.Params.Add(‘HostName=127.0.0.1’);

conn.Params.Add(‘Database=test’);

conn.Open;

finally

conn.Free;

end;

二、基本的數(shù)據(jù)庫(kù)操作

接下來,我們看一下Delphi中常用的數(shù)據(jù)庫(kù)操作方法。下面,使用Firebird數(shù)據(jù)庫(kù)來演示以下基本數(shù)據(jù)操作方法。

1. 創(chuàng)建表格

在現(xiàn)有的數(shù)據(jù)庫(kù)連接下,我們要?jiǎng)?chuàng)建新的表格來存儲(chǔ)數(shù)據(jù)。我們要在數(shù)據(jù)模塊中放置 TSQLQuery 控件,點(diǎn)擊其屬性編輯器,設(shè)置 Connection 屬性為剛剛創(chuàng)建的mysql連接,并指定SQL語(yǔ)句:

CREATE TABLE person (

id INTEGER PRIMARY KEY,

name VARCHAR(50),

age INTEGER,

born DATE

)

接下來,我們實(shí)例化一個(gè) TSQLQuery 對(duì)象并用它來執(zhí)行這個(gè)SQL語(yǔ)句:

procedure TForm1.SQLCreateTableButtonClick(Sender: TObject);

var

SQLQuery: TSQLQuery;

begin

SQLQuery := TSQLQuery.Create(nil);

try

SQLQuery.SQLConnection := SQLConnection1;

SQLQuery.SQL.Text := ‘CREATE TABLE person (‘ +

‘id INTEGER PRIMARY KEY, name VARCHAR(50),’ +

‘a(chǎn)ge INTEGER, born DATE)’;

SQLQuery.ExecSQL;

finally

SQLQuery.Free;

end;

end;

2. 插入數(shù)據(jù)

現(xiàn)在,我們已經(jīng)創(chuàng)建了一個(gè)新的表格,我們來插入幾條記錄。我們要在數(shù)據(jù)模塊中放置 TSQLQuery 控件,設(shè)置 Connection 屬性為剛剛創(chuàng)建的mysql連接,并指定SQL語(yǔ)句:

INSERT INTO person (id, name, age, born)

VALUES (1, ‘張三’, 20, ‘2023/10/1’),

(2, ‘李四’, 23, ‘1998/9/3’),

(3, ‘王五’, 18, ‘2023/5/7’);

接下來,我們利用這個(gè) TSQLQuery 控件來執(zhí)行這個(gè)SQL語(yǔ)句:

procedure TForm1.SQLInsertButtonClick(Sender: TObject);

var

SQLQuery: TSQLQuery;

begin

SQLQuery := TSQLQuery.Create(nil);

try

SQLQuery.SQLConnection := SQLConnection1;

SQLQuery.SQL.Text := ‘INSERT INTO person (id, name, age, born) ‘ +

‘VALUES (1, ‘ +

QuotedStr(‘張三’) + ‘, ‘ +

’20, ‘ +

QuotedStr(‘2023/10/1’) + ‘), (2, ‘ +

QuotedStr(‘李四’) + ‘, ‘ +

’23, ‘ +

QuotedStr(‘1998/9/3’) + ‘), (3, ‘ +

QuotedStr(‘王五’) + ‘, ‘ +

’18, ‘ +

QuotedStr(‘2023/5/7’) + ‘)’;

SQLQuery.ExecSQL;

finally

SQLQuery.Free;

end;

end;

3. 查詢數(shù)據(jù)

我們已經(jīng)成功地插入了一些數(shù)據(jù),現(xiàn)在我們準(zhǔn)備查詢它們。我們可以使用 TSQLDataSet 控件來查詢數(shù)據(jù),與其他數(shù)據(jù)集一樣,它可以顯示查詢結(jié)果集和允許用戶進(jìn)行瀏覽、編輯、刪除等。

在數(shù)據(jù)模塊中,設(shè)置 TSQLDataSet 控件的 Connection 屬性為剛剛創(chuàng)建的mysql連接,并設(shè)置它的 CommandText 屬性來指定查詢語(yǔ)句:

SELECT * FROM person ORDER BY id

下面,我們使用這個(gè) TSQLDataSet 控件來執(zhí)行這個(gè)查詢語(yǔ)句:

procedure TForm1.SQLQueryButtonClick(Sender: TObject);

begin

SQLDataSet1.CommandText := ‘SELECT * FROM person ORDER BY id’;

SQLDataSet1.Open;

end;

執(zhí)行這個(gè)操作后,我們可以看到如下的結(jié)果:

id name age born

— —- — —-

1 張三 20 2023/10/1

2 李四 23 1998/9/3

3 王五 18 2023/5/7

4. 更新數(shù)據(jù)

假設(shè)我們現(xiàn)在需要更新張三的年齡,我們可以利用 TSQLQuery 控件來更新數(shù)據(jù)。在數(shù)據(jù)模塊中,設(shè)置 TSQLQuery 控件的 Connection 屬性為剛剛創(chuàng)建的mysql連接,并指定SQL語(yǔ)句:

UPDATE person SET age = 21 WHERE name = ‘張三’;

然后我們就可以利用這個(gè) TSQLQuery 控件來執(zhí)行這個(gè)SQL語(yǔ)句:

procedure TForm1.SQLUpdateButtonClick(Sender: TObject);

var

SQLQuery: TSQLQuery;

begin

SQLQuery := TSQLQuery.Create(nil);

try

SQLQuery.SQLConnection := SQLConnection1;

SQLQuery.SQL.Text := ‘UPDATE person SET age = 21 WHERE name = ‘ +

QuotedStr(‘張三’);

SQLQuery.ExecSQL;

finally

SQLQuery.Free;

end;

end;

如果我們?cè)俅芜\(yùn)行查詢操作,就可以看到數(shù)據(jù)被正確地更新了:

id name age born

— —- — —-

1 張三 21 2023/10/1

2 李四 23 1998/9/3

3 王五 18 2023/5/7

5. 刪除數(shù)據(jù)

現(xiàn)在,我們已經(jīng)成功地更新了一條記錄,接下來,我們來看如何刪除一條記錄。在數(shù)據(jù)模塊中,設(shè)置 TSQLQuery 控件的 Connection 屬性為剛剛創(chuàng)建的mysql連接,并指定SQL語(yǔ)句:

DELETE FROM person WHERE name = ‘李四’;

然后我們利用這個(gè) TSQLQuery 控件來執(zhí)行這個(gè)SQL語(yǔ)句:

procedure TForm1.SQLDeleteButtonClick(Sender: TObject);

var

SQLQuery: TSQLQuery;

begin

SQLQuery := TSQLQuery.Create(nil);

try

SQLQuery.SQLConnection := SQLConnection1;

SQLQuery.SQL.Text := ‘DELETE FROM person WHERE name = ‘ +

QuotedStr(‘李四’);

SQLQuery.ExecSQL;

finally

SQLQuery.Free;

end;

end;

6. 關(guān)閉數(shù)據(jù)庫(kù)連接

在所有數(shù)據(jù)庫(kù)操作完成后,我們需要手動(dòng)關(guān)閉數(shù)據(jù)庫(kù)連接。在數(shù)據(jù)模塊中,添加一個(gè) TSQLConnection 控件并將Connection屬性設(shè)置為剛剛創(chuàng)建的mysql連接。然后,點(diǎn)擊這個(gè) TSQLConnection 控件的 Disconnect() 方法來關(guān)閉連接。

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

SQLConnection1.Disconnect;

end;

三、

本文從Delphi數(shù)據(jù)庫(kù)的連接入手,分別介紹了建立連接、創(chuàng)建表格、插入數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)這些基本的數(shù)據(jù)庫(kù)操作方法。同時(shí),我們也給出了一些實(shí)際的例子來演示具體的實(shí)現(xiàn)方法。希望能對(duì)讀者理解和掌握Delphi數(shù)據(jù)庫(kù)開發(fā)有所幫助。

相關(guān)問題拓展閱讀:

  • DELPHI基礎(chǔ)教程:Delphi客戶服務(wù)器應(yīng)用開發(fā)(四)[1]
  • Delphi 開發(fā)數(shù)據(jù)庫(kù)控件的方法[1]
  • Delphi 數(shù)據(jù)庫(kù)編程

DELPHI基礎(chǔ)教程:Delphi客戶服務(wù)器應(yīng)用開發(fā)(四)[1]

從開發(fā)平臺(tái)到服務(wù)器的向上適化

   適化概述

  所謂適化就是將桌面應(yīng)用轉(zhuǎn)化為Client/Server應(yīng)用

  適化是一個(gè)很復(fù)雜的主題 這里不詳細(xì)講述 本節(jié)將介紹適化Delphi 應(yīng)用程序中最重要的方面

  適化的主要方面有

  ● 將數(shù)據(jù)庫(kù)從桌面平臺(tái)到服務(wù)器的適化

  ● 將應(yīng)用程序轉(zhuǎn)化為Client/Server的適化

  適化還需要實(shí)現(xiàn)從桌面環(huán)境到Client/Server環(huán)境的轉(zhuǎn)化

  桌面數(shù)據(jù)庫(kù)和SQL服務(wù)器數(shù)據(jù)庫(kù)在許多方面有不同之處 例如

  ● 桌面數(shù)據(jù)庫(kù)用于同一時(shí)刻單用戶的訪問 而服務(wù)器用于多用戶訪問

  ● 桌面數(shù)據(jù)庫(kù)是面向記錄的 而服務(wù)器是面向的

  ● 桌面數(shù)據(jù)庫(kù)將每個(gè)表存儲(chǔ)在獨(dú)立的文件中 而服務(wù)器將所有的表存儲(chǔ)在數(shù)據(jù)庫(kù)中Client/Server應(yīng)用必須解決更新的問題 最復(fù)雜的是聯(lián)接 網(wǎng)絡(luò)和事務(wù)控制

  

適化數(shù)據(jù)庫(kù)

  適化數(shù)據(jù)庫(kù)包含下列步驟

  ● 在桌面數(shù)據(jù)庫(kù)結(jié)構(gòu)的基礎(chǔ)上 定義服務(wù)器上的元數(shù)據(jù)

  ● 將數(shù)據(jù)從桌面轉(zhuǎn)化到服務(wù)器中

  ● 解決下列問題

  ● 數(shù)據(jù)類型差異

  ● 數(shù)據(jù)安全性和完整性

  ● 事務(wù)控制

  ● 數(shù)據(jù)訪問權(quán)

  ● 數(shù)據(jù)合法性

  ● 鎖定

  Delphi提供了兩種方法適化一個(gè)數(shù)據(jù)庫(kù)

  ● 使用Database Desktop工具 選擇菜單Tools/Utilities/Copy to命令將數(shù)據(jù)庫(kù)表從桌面方式拷貝到SQL格式

  ● 建立應(yīng)用TBatchMove部件的應(yīng)用程序

  這兩種方法都可以將表結(jié)構(gòu)和數(shù)據(jù)從桌面數(shù)據(jù)源轉(zhuǎn)化到服務(wù)器上 依靠這些數(shù)據(jù)庫(kù) 可能需要改變結(jié)果表 例如 可能想進(jìn)行不同數(shù)據(jù)類型的映射

  也可以將下列特征加入數(shù)據(jù)庫(kù)

  ● 完整性約束

  ● 索引

  ● 檢測(cè)約束

  ● 存儲(chǔ)過程和觸發(fā)器

  ● 其它服務(wù)器特征

  如果用SQL腳本和服務(wù)器數(shù)據(jù)定義工具定義元數(shù)據(jù)會(huì)更有效 然后用前面介紹的兩種方法轉(zhuǎn)移數(shù)據(jù) 因?yàn)槿绻鞘止ざx數(shù)據(jù)庫(kù)表 Database Desktop和TBatchMove 部件將只拷貝數(shù)據(jù)

  

適化應(yīng)用程序

  在理論上 設(shè)計(jì)用來訪問局部數(shù)據(jù)的Delphi應(yīng)用程序做很少的修改就可以訪問遠(yuǎn)程服務(wù)器上的數(shù)據(jù) 如果在服務(wù)器上定義適合的數(shù)據(jù)源 你就能將應(yīng)用程序指向訪問它 這只需簡(jiǎn)單地改變應(yīng)用程序中TTable或TQuery部件的DatabaseName屬性

  實(shí)際上 在訪問局部和過程數(shù)據(jù)源之間有許多重要的不同之處 Client/Server應(yīng)用程序必須解決大量的在桌面應(yīng)用中所沒有的問題

  任何Delphi應(yīng)用程序都能用TTable或TQuery部件訪問數(shù)據(jù) 桌面應(yīng)用程序通常都是使用TTable部件 當(dāng)適化到SQL服務(wù)器上時(shí) 用TQuery會(huì)更有效 如果應(yīng)用程序要檢索大量記錄 則TQuery部件要略勝一籌

  如果應(yīng)用程序使用統(tǒng)計(jì)或數(shù)學(xué)函數(shù) 那么在服務(wù)器上通過存儲(chǔ)過程執(zhí)行這些函數(shù)會(huì)更有效 因?yàn)榇鎯?chǔ)過程執(zhí)行更快 使用存儲(chǔ)過程還可以減少網(wǎng)絡(luò)負(fù)載 特別是大量行數(shù)據(jù)的函數(shù)

  例如 計(jì)算大量記錄的標(biāo)準(zhǔn)差

  ● 如果該函數(shù)在客戶端執(zhí)行 所有的值從服務(wù)器上檢索出來并送到客戶端 導(dǎo)致網(wǎng)絡(luò)擁塞

  ● 如果該函數(shù)在服務(wù)器端執(zhí)行 則應(yīng)用程序只需要服務(wù)器上的答案

   Delphi客戶/服務(wù)器應(yīng)用實(shí)例分析

  本節(jié)中采用的實(shí)例是Delphi 數(shù)據(jù)庫(kù)的例子CSDEMO CSDEMO是Delphi客戶/服務(wù)器編程的示例程序 它采用的數(shù)據(jù)庫(kù)服務(wù)器是Local InterBase Server

  CSDEMO較好地示范了BDE環(huán)境的配置 InterBASE Server高級(jí)功能應(yīng)用 SQL服務(wù)器聯(lián)接 觸發(fā)器應(yīng)用 存儲(chǔ)過程編程和事務(wù)控制技術(shù)等 具有較高的參考價(jià)值 本節(jié)講述下列內(nèi)容

  ● 數(shù)據(jù)庫(kù)環(huán)境介紹

  ● TDatabase的應(yīng)用

  ● 不同數(shù)據(jù)庫(kù)表的切換

  ● 觸發(fā)器編程

  ● 存儲(chǔ)過程編程

  ● 事務(wù)控制應(yīng)用

  

數(shù)據(jù)庫(kù)環(huán)境介紹

  本例中采用的數(shù)據(jù)庫(kù)服務(wù)器是Local InterBase Server Local InterBase是InterBase Server的單用戶版 位 兼容ANSI SQL Local InterBase支持客戶/服務(wù)器應(yīng)用在單機(jī)上的開發(fā)和測(cè)試 并且可以很容易地適化到InterBase Server上 因此 開發(fā)客戶/服務(wù)器應(yīng)用采用Local InterBase作為原型開發(fā)環(huán)境是很方便的

  

IBLOCAL的BDE參數(shù)

  本例中的SQL數(shù)據(jù)庫(kù)是IBLOCAL 它是由BDE配置工具(BDECFG EXE)設(shè)置參數(shù)值 它的各項(xiàng)參數(shù)值列于下表

  表 IBLOCAL的各項(xiàng)參數(shù)值

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  參 數(shù) 名 參 數(shù) 值

  ────────────────────────────────────

  TYPE INTRBASE

  PATH

  SERVER NAME C:\INTRBASE\EXAMPLES\EMPLOYEE GDB

  USER NAME SYSDBA

  OPEN MODE READ/WRITE

  SCHEMA CACHE SIZE

  LANGDRIVER

  SQLQRYMODE

  SQLPASSTHRU MODE SHARED AUTOMIT

  SCHEMA CHCHE TIME

  MAX ROWS

  BATCH COUNT

  ENABLE SCHEMA CACHE FALSE

  SCHEMA CACHE DIR

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  

數(shù)據(jù)庫(kù)結(jié)構(gòu)介紹

  IBLOCAL數(shù)據(jù)庫(kù)的結(jié)構(gòu)都是由InterBase服務(wù)器工具交互式SQL工具(ISQL)定義的

  用ISQL定義數(shù)據(jù)庫(kù) 首先要用Create Database命令建立數(shù)據(jù)庫(kù) 建立的新數(shù)據(jù)庫(kù)一般是以GDB為擴(kuò)展名 建立好后 就可以用SQL語(yǔ)言定義數(shù)據(jù)庫(kù)表 例如建立EMPLOYEE表的SQL語(yǔ)句如下

  定義域名數(shù)據(jù)類型

  CREATE DOMAIN FIRSTNAME AS VARCHAR( )

  CREATE DOMAIN LASTNAME AS VARCHAR( )

  CREATE DOMAIN COUNTRYNAME AS VARCHAR( )

  CREATE DOMAIN EMPNO AS ALLINT;

  CREATE DOMAIN DEPTNO AS CHAR( )

  CHECK (VALUE = OR (VALUE > AND VALUE )

  CREATE DOMAIN JOBGRADE AS ALLINT

  CHECK (VALUE BEEEN AND )

  CREATE DOMAIN SALARY AS NUMERIC( )

  DEFAULT

  CHECK (VALUE > )

  建立EMPLOYEE表

lishixinzhi/Article/program/Delphi/202311/25125

Delphi 開發(fā)數(shù)據(jù)庫(kù)控件的方法[1]

Delphi作為一種目前十分流行的數(shù)據(jù)庫(kù)開發(fā)語(yǔ)言 在數(shù)據(jù)庫(kù)開發(fā)領(lǐng)域有著十分重要的地位 它不僅提供了可視化的開發(fā)環(huán)境 使得開發(fā)變得相對(duì)容易 而且還是一種面向?qū)ο蟮恼Z(yǔ)言 使得程序員能夠充分利用面向?qū)ο缶幊痰姆N種優(yōu)勢(shì)——如封裝 繼承等等 從而大大減輕了開發(fā)的難度和工作量 下面 我們就談一談利用面向?qū)ο蟮奶匦詠黹_發(fā)數(shù)據(jù)庫(kù)控件的方法

  Delphi本身提供了一些數(shù)據(jù)庫(kù)控件 如DBGrid Table等 它們給開發(fā)帶來了很多方便 下面我們來以一個(gè)能夠顯示數(shù)據(jù)表中的所有字段的控件為例來說明如何用Delphi來進(jìn)行控件的編程

  首先要為控件選擇一個(gè)合適的父類 Windows的一個(gè)好處就在于它將許多操作標(biāo)準(zhǔn)化了 通過這些標(biāo)準(zhǔn)的操作 使得學(xué)習(xí)和使用都有章可循 用戶就很容 易融會(huì)貫通地掌握整個(gè)系統(tǒng) 在Delphi中提供了許多控件 這些控件生成的應(yīng)用程序足以滿足Windows編程的要求 而一些新的控件也可以在此基礎(chǔ)上 產(chǎn)生 它一方面繼承了一部分控件標(biāo)準(zhǔn)的操作 另一方面也在程序中加入一些代碼來實(shí)現(xiàn)特定的功能 這樣用戶使用起來不會(huì)覺得突兀 也簡(jiǎn)化了程序的開發(fā) 根據(jù) 我們的目標(biāo)可以看出 利用 下拉框 控件作為新控件的父類比較合適 因?yàn)樗峁┝讼吕蛑械乃袠?biāo)準(zhǔn)操作 這就可以大大減少我們的編程量   然后就是為 特定的功能編寫代碼 我們應(yīng)該想到 如果一個(gè)下拉框能夠顯示一個(gè)數(shù)據(jù)庫(kù)中的所有字段 那么它一定有一個(gè)屬性能夠與數(shù)據(jù)庫(kù)相連 我們將這個(gè)屬性定名為 DataSource 并將這一屬性添加到控件中 添加的方法是 首先在Private段中加入如下代碼

   FDataLink:TFieldDataLink;   function GetDataSource:TDataSource;   Procedure SetDataSource( Value:TDataSource);

  其中TfieldDataLink是一個(gè)十分重要的類 我們之所以能夠很容易地進(jìn)行數(shù)據(jù)庫(kù)控件的開發(fā)全是拜它之賜 它有一些十分有用的屬性 如 DataSource 利用這個(gè)屬性 我們就能很容易地指定新控件的DataSource屬性

  第三步就是為控件的功能編寫代碼 可以想到 如果我們想要在拉下下拉框時(shí)顯示數(shù)據(jù)庫(kù)中的所有字段 就要在它的DropDown事件中加入代碼來將所有 的字段加入到下拉框的下拉區(qū)域中 這應(yīng)該分兩步走 之一就是要取得指定數(shù)據(jù)庫(kù)的所有字段 第二就是將這些字段以字符串的格式加入到下拉框中(而拉下時(shí)顯示 所有字段的功能則由下拉框控件自己完成) 在取得數(shù)據(jù)庫(kù)的字段時(shí) 用到了我們上面提到的TfieldDataLink類 下面的代碼就可以獲得指定數(shù)據(jù)庫(kù) 的字段數(shù)目

   j:= ;   j:=FDataLink DataSource DataSet FieldCount ;//取得數(shù)據(jù)庫(kù)中的所有字段的名字   I:= ;

  然后再用下面的代碼將這些字段的名字加入到下拉框的items屬性中 值得注意的是在每次拉下這個(gè)下拉框時(shí)都要將items屬性清空 否則這個(gè)下拉框?qū)⒚看味紩?huì)因加入重復(fù)的內(nèi)容而變得越來越長(zhǎng) 并且一次選擇可以選定許多項(xiàng) 使得控件看起來有點(diǎn)怪

  items Clear ; //清空items屬性

  repeat //循環(huán)操作將字段加入下拉框中

  items Add (FDataLink DataSet Fields FieldName ); //將字段名加入到下拉框中

  I:=I+ ;

  until I>j- ; //直到所有的字段加入完為止

  第四步 就是將以上代碼加入到Delphi的控件編輯窗口中去 點(diǎn)擊Delphi的 Component/New Component 菜單 系統(tǒng)出現(xiàn)一個(gè)對(duì)話框 將對(duì)話框如圖 所示填寫

  填寫完畢點(diǎn)擊 OK 按鈕 就可以創(chuàng)建一個(gè)文件 將上面提供的代碼加入到文件的適當(dāng)位置 就可以完成這個(gè)控件的編寫 圖 是帶有這個(gè)控件的程序的例子

  可以想見 這個(gè)控件有著十分廣泛的功能 例如 我們能夠利用它設(shè)置指定字段的值來運(yùn)行查詢 也可以返回?cái)?shù)據(jù)庫(kù)中指定字段的數(shù)據(jù)類型 長(zhǎng)度等信息 給我們的編程提供了極大的方便

但是也應(yīng)該看到 這個(gè)控件也有一些缺點(diǎn) 那就是它只能顯示字段的名稱 一般的數(shù)據(jù)庫(kù)中字段的名稱都是英文的 這給中文版的應(yīng)用軟件帶來不便 下面我們 就用FdataLink的另一個(gè)屬性來顯示中文化的字段 這個(gè)屬性就是DisplayName 它所指定的是數(shù)據(jù)庫(kù)字段的顯示名稱 而這個(gè)名稱我們可以在 設(shè)計(jì)時(shí)將其漢化 這樣在應(yīng)用程序中顯示出來的就是有意義的中文了

Delphi 數(shù)據(jù)庫(kù)編程

delphi的數(shù)據(jù)庫(kù)功能是很強(qiáng)悍的,常見的方搏派者法,使用ADO那羨咐套控件就可以了,至于數(shù)據(jù)庫(kù),你看ADO的連接選項(xiàng)里面,它支持很多數(shù)據(jù)庫(kù)的,sql server,mysql等常見數(shù)據(jù)庫(kù)肯定沒問題的。關(guān)鍵看你的需求,以及你對(duì)哪種數(shù)據(jù)庫(kù)比較熟悉?;?/p>

暈,都是說的遠(yuǎn)程啊

Delphi + SqlServer

1.將Ado選項(xiàng)卡中滑滲的Adoconnection 和 AdoQuery拖入頁(yè)面中,將DataAccess中的Datasource拖入頁(yè)面。

2.雙擊Adoconnection,點(diǎn)擊“build”,點(diǎn)擊“提供程序”,選擇“Microsoft ole db provider for SQL Server”,點(diǎn)擊“下一步”,輸入數(shù)據(jù)庫(kù)的用戶名和密碼,選中“允許保存密碼”,然后選擇數(shù)據(jù)庫(kù),點(diǎn)擊“測(cè)試鏈接”,成功后信物脊點(diǎn)螞睜擊確定,然后點(diǎn)擊OK。

將Adoconnection的LoginPrompt屬性設(shè)置為False.

3.設(shè)置AdoQuery的Connection屬性為Adoconnection(下拉選擇),將Datasource的DataSet屬性設(shè)置為AdoQuery(下拉選擇)。

4.在Dbgrid中設(shè)置Datasource屬性為Datasource(下拉選擇)。

5.AdoQuery.Close;

AdoQuery.SQL.Clear;

AdoQuery.SQL.Add(‘select * from table’);

AdoQuery.Open;

用三層會(huì)更好

當(dāng)然直接客戶對(duì)服務(wù)器也行SQL2023使用的是1033端口,確保沒圓該端口已經(jīng)對(duì)外網(wǎng)開放,然后直接枯瞎塌神毀使用字符串連接即可

sql 2023等都行,開發(fā)數(shù)據(jù)庫(kù)是selphi的優(yōu)勢(shì)。

關(guān)于delphi數(shù)據(jù)庫(kù)開發(fā)及精彩實(shí)例的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營(yíng)銷推廣服務(wù)眾多企業(yè)。電話:028-86922220


分享名稱:Delphi數(shù)據(jù)庫(kù):實(shí)現(xiàn)與實(shí)例 (delphi數(shù)據(jù)庫(kù)開發(fā)及精彩實(shí)例)
當(dāng)前鏈接:http://www.dlmjj.cn/article/cdsidgs.html