資料檔案是應用程式持久化儲存的基礎。C++Builder 提供豐富的檔案與資料庫元件,但核心操作模式始終圍繞七大基本功能。本文系統歸納這七種模式,說明適用情境、關鍵元件與實作要點,作為資料層設計的檢核清單。
| 模式 | 用途 | 關鍵元件/技術 | 適用情境 |
|---|---|---|---|
| 1. 建立檔案 | 建立新資料檔,定義存取模式(獨佔/共享、序列/隨機) | TFileStream、TIniFile、TADOConnection、TSQLConnection、CreateFile API |
應用程式首次執行、匯出報表、建立暫存檔 |
| 2. 新增資料 | 在既有檔案末尾或指定位置寫入新記錄 | TTable.Append/Insert、TADOQuery.ExecSQL (INSERT)、TFileStream.Write、TStreamWriter |
記錄交易、新增使用者、寫入日誌 |
| 3. 刪除資料 | 移除符合條件的記錄,釋放空間 | TTable.Delete、TADOQuery.ExecSQL (DELETE)、TFileStream 重寫檔案 |
取消訂單、清除過期日誌、使用者註銷 |
| 4. 修改資料 | 更新既有記錄的欄位值 | TTable.Edit/Post、TADOQuery.ExecSQL (UPDATE)、TFileStream.Seek+Write |
修改個人資料、更新庫存、狀態流轉 |
| 5. 查詢資料 | 依條件檢索並顯示少量資料 | TTable.Locate/FindKey、TADOQuery.Open (SELECT)、TStreamReader 逐行掃描 |
即時查詢、下拉選單載入、驗證輸入 |
| 6. 列印/匯出 | 大量資料格式化輸出至印表機或檔案 | QuickReport、FastReport、Rave Reports、TADOQuery+CSV/Excel匯出 |
月結報表、發票列印、資料備份匯出 |
| 7. 分析/統計 | 彙總、群組、運算產生決策支援資訊 | TADOQuery (GROUP BY/SUM/AVG)、TClientDataSet 聚合、SQL Server Analysis Services |
銷售趨勢、庫存周轉、客戶分群、儀表板 |
// 寫入文字檔 (UTF-8)
TStreamWriter *writer = new TStreamWriter("data.txt", false, TEncoding::UTF8);
try {
writer->WriteLine("ID,Name,Value");
writer->WriteLine("1,ItemA,100");
} __finally { delete writer; }
// 讀取文字檔
TStreamReader *reader = new TStreamReader("data.txt", TEncoding::UTF8);
try {
while (!reader->EndOfStream) {
String line = reader->ReadLine();
// 解析處理
}
} __finally { delete reader; }
// 新增
ADOTable1->Append();
ADOTable1->FieldByName("Name")->AsString = "NewItem";
ADOTable1->FieldByName("Qty")->AsInteger = 10;
ADOTable1->Post();
// 修改
if (ADOTable1->Locate("ID", 1, TLocateOptions())) {
ADOTable1->Edit();
ADOTable1->FieldByName("Qty")->AsInteger = 20;
ADOTable1->Post();
}
// 查詢
ADOQuery1->SQL->Text = "SELECT * FROM Items WHERE Qty > :minQty";
ADOQuery1->Parameters->ParamByName("minQty")->Value = 5;
ADOQuery1->Open();
// 綁定至 DBGrid 顯示
Aggregates 定義彙總欄位(Sum/Count/Avg/Min/Max)。CloneCursor 建立多檢視,不複製資料。StartTransaction/Commit/Rollback 中,確保 ACID。BeforePost、OnValidate 事件中實作業務規則,阻擋髒資料入庫。TOP N/SKIP)或伺服器端游標,避免記憶體耗盡。無論採用平檔、關聯資料庫或記憶體資料集,資料檔案操作的本質皆為這七大模式的組合與變奏。建立標準化的資料存取層(DAL),封裝共用邏輯(連線管理、交易範本、參數綁定、錯誤處理),能讓上層業務邏輯專注於領域規則,提升開發效率與系統穩定度。