2019/11/22

在 React 使用 Font Awesome

在【[Day 09 - 網速換算器] 網速傻傻分不清楚 Mbps? Mb/s? 來寫個單位換算器吧
這篇看到 REACT 搭配 Font Awesome 的畫面後,想試試看是否能在REACT專案中也套入它的效果。


因為REACT網站不能夠像範例那樣直接使用HTML引入的手法,所以就用正規的import方式來使用。

2019/11/20

認識 Delphi Community Edition (CE) 版本

【RAD Studio】=【Delphi】+【C++ Builder】

在認識Delphi CE之前,就不得不提一下Delphi在我心中到底是個什麼樣的存在。

從前從前,在我很小的時候,學習過Visual Basic、PowerBuilder、Foxpro、MS Access和JAVA等語言,每一項至少學習三個月以上。

2019/11/04

單機資料庫連結方式如何選擇,以SQLite為例

在描述選擇Delphi CE有什麼優缺點後,接下來就是要如何選擇資料庫的連結技術。

目前Delphi CE提供了ADO、dbExpress(DBX)和FireDAC資料庫連結技術,ADO它沒有壞掉,效能也好,在沒有跨平台需求用它就可以了。

DBX和FireDAC,這個比較難選,先來看看它們的差異:
單機版最常用的兩款資料庫:Access和SQLite在FireDAC上都有提供,但DBX只提供SQLite的連結方式。

而SQLite和MS Access相比下又有幾個優點:
  • 小巧輕巧
  • 速度快
  • 跨平台

以實際操作來比較DBX和FireDAC的差別。

首先利用自己做的Dbexpress.SQLite.Factory建立資料庫和資料表格:
建立比操作輕鬆太多。(笑)


使用DBX連結資料表:

  1. 從Palette容器裡拖拉一個TSQLConnection到TForm中,並且設定好SQLite的連線參數。
  2. 從Palette容器裡拖拉一個TSQLDataSet到TForm中,在CommandText屬性輸入『SELECT * FROM biolife』。
  3. 對TSQLDataSet按右鍵,選『Fields Editor』,並對跳出的編輯器按右鍵,選『Add all fields』
上述步驟完成後,會得到以下結果:
    SQLDataSet1species_no: TWideMemoField;
    SQLDataSet1category: TWideMemoField;
    SQLDataSet1common_name: TWideMemoField;
    SQLDataSet1species_name: TWideMemoField;
    SQLDataSet1length_cm: TWideMemoField;
    SQLDataSet1length_in: TWideMemoField;
    SQLDataSet1notes: TWideMemoField;
    SQLDataSet1graphic: TWideMemoField;
表格內有 real, text, blob 型別,但轉換後全是 TWideMemoField,有點奇怪,來看看FireDAC會不會有所變化。

使用FireDAC連結資料表:


  1. 從Palette容器裡拖拉一個TFDPhysSQLiteDriverLink到TForm中。
  2. 從Palette容器裡拖拉一個TFDConnection到TForm中,並且設定好SQLite的連線參數。
  3. 從Palette容器裡拖拉一個TFDQuery到TForm中,在SQL屬性輸入『SELECT * FROM biolife』。
  4. 對TFDQuery按右鍵,選『Fields Editor』,並對跳出的編輯器按右鍵,選『Add all fields』
上述步驟完成後,會得到以下結果:
    FDQuery1species_no: TFloatField;
    FDQuery1category: TWideMemoField;
    FDQuery1common_name: TWideMemoField;
    FDQuery1species_name: TWideMemoField;
    FDQuery1length_cm: TFloatField;
    FDQuery1length_in: TFloatField;
    FDQuery1notes: TWideMemoField;
    FDQuery1graphic: TBlobField;
FireDAC可以正確的取得SQLite資料表各欄位格式。

結論


由上面的資料顯示,若使用SQLite單機資料庫,會是以FireDAC表現會比較好。

DBX Driver官方目前已不會有大幅度的功能更新,所以SQLite控制上不會比FireDAC來得好,建議有使用SQLite需求,應採用FireDAC。