概述
ClientDataSet 的嵌套資料集在書本上看過,目的在解決表頭-明細(Master-Details)設計模式。其特性是在欄位清單裡塞入一個名為TDataSet的欄位,一直以來就覺得嵌套資料集是很神奇的技術。
資料庫技術核心還是 SQL,當然就要看 Delphi 在嵌套資料集模式下是怎麼使用 SQL 拉資料,有想法就來實作看看。
原來,拉資料的方式是在表頭拉資料時,也一併把【所有】,對你沒看錯,是一口氣把所有明細全抓到客戶端!
Delphi and C++ Builder Legend
ClientDataSet 的嵌套資料集在書本上看過,目的在解決表頭-明細(Master-Details)設計模式。其特性是在欄位清單裡塞入一個名為TDataSet的欄位,一直以來就覺得嵌套資料集是很神奇的技術。
資料庫技術核心還是 SQL,當然就要看 Delphi 在嵌套資料集模式下是怎麼使用 SQL 拉資料,有想法就來實作看看。
原來,拉資料的方式是在表頭拉資料時,也一併把【所有】,對你沒看錯,是一口氣把所有明細全抓到客戶端!
最近 EMBT 官方新聞出現我很感興趣的文章:This Is How To Store Cross Platform App Settings In JSON,是由 Softacom Information 團隊執筆,這是一個新興團隊,匯整來自全球各地 Delphi 愛好者的文章並發表,所以還不知道真實原作者是誰。
原文作者說明在跨平台應用程式在讀寫設定檔時,除了 XML (Extensible Markup Language) 和 INI (Initial) 外,還有一個現代化應用程式常使用的設定檔格式:JSON,例如 Visual Studio Code 就是一個經典的參考。
![]() |
Visual Studio Code 工作區設定檔 |
原作控訴 Delphi 工程師已經被官方 JSON 框架竉壞了 (笑),是真的嗎?
在使用 Delphi 或 C++ Builder 時往往會遇到一些操作不習慣、漏洞 (Bugs) 等問題,以前的 Borland, CodeGear 時期就有品質控制 (QC) 網站,但實際使用上不是連不上就是不知道哪一個才是有在維護的連結,所以會很依賴代理商代為傳遞問題回報的工作,回報者很難得到最快最直接的回應。
原本測試環境打算使用 Interbase,想到自己已經有 SQL Server Driver,不拿來用有點可惜。
索性就試著拿 SQL SERVER LocalDB 來試試。
安裝和建立很簡單,到微軟的線上手冊即可下載:
點擊紅框處就可以下載 SQL2019-SSEI-Expr。
C:\Users\Eden>sqllocaldb c
LocalDB instance "MSSQLLocalDB" created with version 15.0.2000.5.
C:\Users\Eden>sqllocaldb start
LocalDB instance "MSSQLLocalDB" started.
C:\Users\Eden>sqllocaldb info "MSSQLLocalDB"
Name: MSSQLLocalDB
Version: 15.0.2000.5
Shared name:
Owner: EDEN-WIN10\Eden
Auto-create: Yes
State: Running
Last start time: 2022/4/10 下午 11:00:17
Instance pipe name: np:\\.\pipe\LOCALDB#<use your pipe name>\tsql\query
*<use your pipe name>在每次啟動時都會不一樣。
之後可以使用 SSMS 以 pipe 提供的內容進行連接;我在這裡使用 sqlcmd 來建立,而 sqlcmd 在安裝前必須先安裝 ODBC 17 for SQL SERVER。
到 github -- instnwnd.sql 下載 SQL 檔,並且更換 mdf / ldf 路徑後 (不換也可以),執行即可建立南風範例資料庫。
建立方式相當簡單,搞懂一些小細節後,可以很快的把開發環境建構起來。
和你分享。 😘