亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

<optgroup id="cczp1"><ruby id="cczp1"><cite id="cczp1"></cite></ruby></optgroup>
  • <acronym id="cczp1"></acronym>
    <acronym id="cczp1"><option id="cczp1"><ol id="cczp1"></ol></option></acronym>
    <delect id="cczp1"></delect>
    <center id="cczp1"></center>
    <delect id="cczp1"></delect><em id="cczp1"><button id="cczp1"><blockquote id="cczp1"></blockquote></button></em>
    1. <optgroup id="cczp1"><td id="cczp1"><dfn id="cczp1"></dfn></td></optgroup>
      1. <table id="aipk9"></table>
        • <delect id="aipk9"><blockquote id="aipk9"></blockquote></delect>
        • <pre id="aipk9"><rp id="aipk9"><strong id="aipk9"></strong></rp></pre>
          <pre id="aipk9"><rp id="aipk9"><strong id="aipk9"></strong></rp></pre>
        • <delect id="aipk9"><blockquote id="aipk9"></blockquote></delect>

          「11.Lazarus數(shù)據(jù)庫編程」3.Lazarus和FireBird

          「11.Lazarus數(shù)據(jù)庫編程」3.Lazarus和FireBird

          3.Lazarus 和 FireBird

          Firebird 是一款開源的免費(fèi)數(shù)據(jù)庫服務(wù)器,它是在 Borland 開源的 Interbase 6 數(shù)據(jù)庫基礎(chǔ)上開發(fā)的,已經(jīng)使用和開發(fā)了幾十年。它包括對(duì)SQL語句(例如 INSERT…RETURNING )、存儲(chǔ)過程、觸發(fā)器等的豐富支持。如果想擴(kuò)展 Firebird 已經(jīng)很廣泛的函數(shù)列表,可以在 FreePascal 中為服務(wù)器編寫已編譯的UDF(用戶定義函數(shù))庫。

          Firebird 數(shù)據(jù)庫一旦建立,只需要很少的DBA手工工作,非常適合小型企業(yè)使用或嵌入式使用。如果進(jìn)行適當(dāng)?shù)恼{(diào)整,它可以擴(kuò)展到TB級(jí),雖然 PostgreSQL 可能是這種大型環(huán)境的更好選擇。

          Firebird 提供嵌入式(基于文件)和客戶端服務(wù)器數(shù)據(jù)庫,無需更改 FPC/Lazarus 中的一行代碼即可使用。如果用作嵌入式數(shù)據(jù)庫,它提供了比 SQLite 更豐富的 SQL 支持,以及到客戶機(jī)服務(wù)器數(shù)據(jù)庫的無縫遷移,盡管 SQLite 本身是一個(gè)非常強(qiáng)大的嵌入式數(shù)據(jù)庫。

          FPC 的 SQLDB 中對(duì) Firebird 的支持相當(dāng)好,與 PostgreSQL 的支持水平相當(dāng)。

          3.1Lazarus 連接 FireBird 數(shù)據(jù)庫

          在 Lazarus 中,連接 FireBird 數(shù)據(jù)庫所用到的組件為 TIBConnection, 是 Interbase/Firebird 專用連接組件。

          同時(shí)也會(huì)使用到 TSQLTransaction 和 TSQLQuery 組件,這兩個(gè)組件是 SQLdb 連接所支持的所有數(shù)據(jù)庫都會(huì)使用到的兩個(gè)組件。

          TIBConnection 組件的主要屬性

          • HostName – FireBird 數(shù)據(jù)庫服務(wù)器主機(jī)名或 IP 地址
          • Port – 端口號(hào)
          • DatabaseName – 數(shù)據(jù)庫名,數(shù)據(jù)庫服務(wù)器上數(shù)據(jù)庫文件的路徑
          • UserName – 用戶名
          • Password – 密碼
          • Connected – 與數(shù)據(jù)庫服務(wù)器建立連接

          3.2 基本示例

          示例:在窗體上展現(xiàn)一張數(shù)據(jù)表中的數(shù)據(jù)。數(shù)據(jù)如下:

          create table d_students1 ( student_id varchar(64) primary key, name varchar(16), sex boolean, birthday date, department_id integer, total_score decimal(9,1));INSERT INTO d_students1(student_id, name, sex, birthday, department_id, total_score)VALUES(‘x-20210001’, ‘張三’, true, ‘2000-05-06’, 1, 520);INSERT INTO d_students1(student_id, name, sex, birthday, department_id, total_score)VALUES(‘x-20210002’, ‘李四’, true, ‘2000-03-09’, 1, 539);INSERT INTO d_students1(student_id, name, sex, birthday, department_id, total_score)VALUES(‘x-20210003’, ‘周五’, false, ‘2001-09-10’, 2, 528);INSERT INTO d_students1(student_id, name, sex, birthday, department_id, total_score)VALUES(‘x-20210004’, ‘趙六’, true, ‘2000-08-28’, 1, 517);INSERT INTO d_students1(student_id, name, sex, birthday, department_id, total_score)VALUES(‘x-20210005’, ‘姜七’, false, ‘2000-07-06’, 2, 547);INSERT INTO d_students1(student_id, name, sex, birthday, department_id, total_score)VALUES(‘x-20210006’, ‘賀八’, true, ‘2000-11-01’, 2, 533);

          3.2.1 項(xiàng)目與所需組件

          首先,創(chuàng)建一個(gè)新Lazarus項(xiàng)目。

          在組件面板的SQLdb控件頁拖拉一個(gè)TIBConnection, 一個(gè) TSQLTransaction 和一個(gè) TSQLQuery 組件到窗體。

          TIBConnection: 是 Interbase/Firebird 專用連接組件。

          TSQLTransaction 和 TSQLQuery: SQLdb 連接所支持的所有數(shù)據(jù)庫都會(huì)利用到這兩個(gè)組件。

          顯示數(shù)據(jù): 利用 Data Controls 頁的 TDBGrid 組件。先添加 Data Access 頁內(nèi)一個(gè) TDatasource 控件后才能將 TDBGrid 連接到數(shù)據(jù)庫。

          界面設(shè)計(jì)如下圖所示:

          3.2.2組件連接關(guān)系

          連接組件:如果使用對(duì)象檢查器是非常簡(jiǎn)單的,也可以使用代碼來實(shí)現(xiàn)。

          1、設(shè)置 IBConnection1 的 Transaction 屬性指向 SQLTransaction1,這會(huì)使得 SQLTransaction1 的 Database 屬性自動(dòng)變更為 IBConnection1;

          2、設(shè)置 SQLQuery1 的 Database 屬性指向 IBConnection1,Lazarus 會(huì)自動(dòng)添加 Transaction 屬性值;

          3、設(shè)置 Datasource1 的 Dataset 屬性指向 SQLQuery1;

          4、設(shè)置 DBGrid1 的 Datasource屬性指向 Datasource1。

          組件及屬性設(shè)置:

          組件

          屬性

          IBConnection1

          Transaction

          SQLTransaction1

          SQLTransaction1

          Database

          IBConnection1

          SQLQuery1

          Database

          IBConnection1

          Transaction

          SQLTransaction1

          Datasource1

          Dataset

          SQLQuery1

          DBGrid1

          Datasource

          Datasource1

          3.2.3連接到數(shù)據(jù)庫

          設(shè)置 IBConnection1 的數(shù)據(jù)庫連接屬性,如下表:

          組件

          屬性

          IBConnection1

          HostName

          127.0.0.1

          Port

          3050

          DatabaseName

          E:workspace_of_lazarusDEMODB.FDB

          UserName

          SYSDBA

          Password

          ***

          Connected

          True

          KeepConnection

          True

          SQLTransaction1

          Active

          True

          SQLQuery1

          SQL

          SELECT * FROM d_students1

          Active

          True

          DBGrid1

          Align

          alClient

          Options

          dgRowSelect=True

          運(yùn)行程序,如下圖所示:

          3.3 FireBird 嵌入數(shù)據(jù)庫

          • Win平臺(tái)下的Firebird

          只要將嵌入式 Firebird 的 fbembed.dll 改名為 C/S 結(jié)構(gòu) Firebird 所用的 fbclient.dll,Lazarus程序就可以連接 C/S 結(jié)構(gòu) Firebird(一般是安裝在另一臺(tái)機(jī)器上或者是你的開發(fā)機(jī)上)。

          此外,您也可以復(fù)制數(shù)據(jù)庫文件到你的應(yīng)用程序目錄,再運(yùn)行應(yīng)用程序,既不需安裝數(shù)據(jù)庫服務(wù)器,也不需要設(shè)置,就能使用嵌入式Firebird來直接連接到數(shù)據(jù)庫文件。

          這為一類用戶帶來了極大的方便:想給終端用戶部署數(shù)據(jù)庫應(yīng)用程序,但又不想自找麻煩地去安裝服務(wù)器,免除了煩瑣的部署步驟:如檢查是否已經(jīng)安裝了服務(wù)器,數(shù)據(jù)庫版本是否是正確,防火墻是否開啟等。

          • Linux/OSX/Unix平臺(tái)下的Firebird

          Linux/OSX 平臺(tái)下應(yīng)該也能夠找到方法來進(jìn)行嵌入式部署。

          具體的 FireBird 嵌入式數(shù)據(jù)庫,我會(huì)專門安排一個(gè)章節(jié)來講解。

          鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
          用戶投稿
          上一篇 2022年6月12日 21:10
          下一篇 2022年6月12日 21:10

          相關(guān)推薦

          聯(lián)系我們

          聯(lián)系郵箱:admin#wlmqw.com
          工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息