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

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

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

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

                3.Lazarus 和 FireBird

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

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

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

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

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

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

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

                TIBConnection 組件的主要屬性

                • HostName – FireBird 數(shù)據(jù)庫服務(wù)器主機名或 IP 地址
                • Port – 端口號
                • 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 項目與所需組件

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

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

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

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

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

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

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

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

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

                2、設(shè)置 SQLQuery1 的 Database 屬性指向 IBConnection1,Lazarus 會自動添加 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

                運行程序,如下圖所示:

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

                • Win平臺下的Firebird

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

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

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

                • Linux/OSX/Unix平臺下的Firebird

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

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

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

                相關(guān)推薦

                • ios手游模擬器(手游模擬器ios)

                  本文主要講的是ios手游模擬器,以及和手游模擬器ios相關(guān)的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 哪個iOS模擬器能多開手游賬號?可以推薦個好用的模擬器給我嗎…

                  2022年11月27日
                • 短視頻策劃內(nèi)容的3個要點(短視頻策劃內(nèi)容怎么做)

                  短視頻在制作時,內(nèi)容框架非常重要。如果直奔主題,然后結(jié)束,聚卓告訴你,這樣的短視頻已經(jīng)過時了?,F(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

                  2022年11月27日
                • 美團第三季度實現(xiàn)營收626億元,即時配送訂單量增至50億筆

                  新京報訊(記者秦勝南)11月25日,美團發(fā)布業(yè)績公告顯示,第三季度營收為626億元,較去年同比增長28.2%,凈利潤為12.2億元。第三季度,美團即時配送訂單數(shù)增長至50億筆。截至…

                  2022年11月27日
                • 個人怎么做抖音帶貨(個人做抖音帶貨能賺錢嗎)

                  抖音如今是大家很熟悉的短視頻平臺,不過現(xiàn)在的抖音卻不只是短視頻那么簡單,它的功能非常豐富,其中一個就是可以帶貨,相信很多小伙伴都有在抖音上買過東西,抖音如今的變現(xiàn)能力也是不容小覷的…

                  2022年11月25日
                • 《寶可夢朱紫》獒教父屬性是什么?獒教父屬性一覽

                  寶可夢朱紫里獒教父是一只很強的寶可夢,很多玩家不清楚獒教父的屬性是什么樣的,下面就給大家?guī)韺毧蓧糁熳祥峤谈笇傩砸挥[,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 獒教父屬性一覽…

                  2022年11月25日
                • 《寶可夢朱紫》太晶化強力寶可夢推薦 太晶化哪些寶可夢最強?

                  寶可夢朱紫游戲中寶可夢種類繁多,不過有的寶可夢比較強,有的稍弱一些,那么太晶化化哪些寶可夢最強呢,為了便于大家更好的體驗游戲,這里給大家?guī)砹藢毧蓧糁熳咸Щ瘡娏毧蓧敉扑],一起來…

                  2022年11月25日
                • 寶可夢朱紫四大天王屬性怎么樣 四大天王屬性數(shù)值介紹

                  寶可夢朱紫四大天王屬性如何?四大天王的屬性數(shù)值玩家們還是挺好奇的,想要了解四大天王屬性的可以看看下面小編的介紹,小編會把四大天王的屬性數(shù)值全都分享在下面,各位趕緊來小編這里多了解一…

                  2022年11月25日
                • 寶可夢朱紫皮卡丘多少級進(jìn)化 皮卡丘進(jìn)化條件攻略

                  寶可夢朱紫皮卡丘進(jìn)化條件是什么?皮卡丘怎么進(jìn)化?作為最受歡迎的電屬性寶可夢,大家都很想知道皮卡丘進(jìn)化的方法,今天小編這就在下面的攻略中分享皮卡丘進(jìn)化條件,各位可以趕緊來小編這里了解…

                  2022年11月25日
                • 小紅書平臺的一些機制及玩法詳解(小紅書玩法有哪些)

                  關(guān)于小紅書 一:小紅書平臺的一些機制 1. 筆記內(nèi)容的CES評分機制 2. 筆記流量入口與長尾效應(yīng) 二:小紅書優(yōu)質(zhì)筆記的特點(分維度、類型分析) 1.筆記的本身架構(gòu)組成 維度 2.…

                  2022年11月25日
                • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

                  CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊,可以是激活,可以是搜索下載激活,可以是綁卡,實名認(rèn)證,可以是付費,可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

                  2022年11月25日

                聯(lián)系我們

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