zoukankan      html  css  js  c++  java
  • Delphi APP 開發入門(八)SQLite資料庫

    Delphi APP 開發入門(八)SQLite資料庫

    Delphi APP 開發入門(七)通知與雲端推播 << 前情

    在撰寫APP程式時,如果遇到資料間無關聯性且資料量不多時,會以像xml檔案去儲存,但一旦遇到關聯性較複雜且資料比較大量時,就需要用資料庫來做記錄。今天的Delphi APP開發就來教大家如何撰寫資料庫APP,在這邊我們使用的是超輕量版的檔案型資料庫系統-SQLite。

    在正式撰寫程式時,我們需要先建立一個新的SQLite資料庫,首先我們必需先到SQLite的官方網站下載二個檔案。

    SQLite-DLL – Delphi XE6在開發工具連結資料庫時,需要此檔案,必需下載後解壓縮到 system32資料夾中。

    SQLite-Shell – SQLite命令列工具,下載後在C槽建立一個SQLite資料夾解壓縮到這裡。

    一、建立SQLite資料庫

    開始 => 執行 輸入 cmd.exe 進入 命令列模式

    依序輸入

    sqlite3             註:進入sqlite3 命令列模式
    .save todolist.db   註:儲存一個叫todolist.db的資料庫
    .quit               註:離開sqlite3 命令列模式

    螢幕快照 2014-06-23 下午9.26.21

    二、建立好資料庫之後,可以回到Delphi XE6新增一個新的Mobile Application程式,接下來我們點選右手邊的Data Explorer,可以看到二種連結方式(FireDAC以及DBExpress),我們先選擇dbExpress。螢幕快照 2014-06-23 下午9.26.37

    三、選擇SQLite按右鍵,Add New Connection

    螢幕快照 2014-06-23 下午9.26.43

    四、連線名稱取名todolist

    螢幕快照 2014-06-23 下午9.26.48

    五、Database輸入todolist.db的完整路徑 c:sqlite odolist.db螢幕快照 2014-06-23 下午9.27.01

    六、按下Advanced,把FailifMissing設為False,這個屬性設為True是指如果資料庫不存在時出現錯誤訊息,設為False時為不存在時建立一個。完成後按OK退出,最後按Test Connection做連線確認完成。

    螢幕快照 2014-06-23 下午9.28.02

    螢幕快照 2014-06-23 下午9.27.58

    七、建立完資料庫連線後,接著建立資料表,點選剛才新增的todolist的Tables按右鍵New Table

    螢幕快照 2014-06-23 下午9.28.08

    八、新增一個欄位為ToDoItem,資料型態(Data Type)為Text螢幕快照 2014-06-23 下午9.28.42

    九、建立完後按Save Table,儲存為Todo資料表

    螢幕快照 2014-06-23 下午9.28.54

    螢幕快照 2014-06-23 下午9.29.00

    十、資料庫都連線完畢後,我們開始建立如下的畫面,先在畫面上放置一個置頂的ToolBar,裡面放一個置中的Label以及左右二邊的按鈕(一個新增、刪除),最後放上ListBox顯示資料
    螢幕快照 2014-06-23 下午9.34.18
    十一、接著我們要將資料與程式做連結,方式很簡單,把剛才建立的todo table按左鍵拖拉到畫面上後,可以看到畫面上自動產生todolistconnection以及todotable二個DBX元件。
    螢幕快照 2014-06-23 下午9.35.17
    十二、接著我們要將todolistconnection的connected設為True、todotable的active設為True。確定資料庫的連線是開啟的

    螢幕快照 2014-06-23 下午9.35.34

    螢幕快照 2014-06-23 下午9.35.47

    十三、接著我們從畫面主選單的View選擇LiveBindings Designer。
    螢幕快照 2014-06-23 下午9.36.02
    十四、LiveBindings Designer是Embarcadero很棒的資料連結技術,利用視覺化的方式讓資料與元件屬性連結。在這裡我們要把todotable裡的todoitem顯示在listbox怎麼做?很簡單就是把todotable裡的todoitem拖拉到listbox1的item.text屬性就行了。連結完成後會發現多了一條箭頭,表示todoitem要顯示在listbox的item.text中。
    螢幕快照 2014-06-23 下午9.36.54
    螢幕快照 2014-06-23 下午9.37.31
    十五、接著我們要實現新增的功能,先在畫面上放置一個TSQLQuery,Name設為todoaddquery,SQLConnection設為todolistconnection,接著設定sql指令如下

    Insert Into Todo(ToDoItem) Values(:ToDoItem)

    螢幕快照 2014-06-23 下午9.40.22
    十六、設定好後,點選Params的屬性內會出現 ToDoItem的參數,我們將DataType設定為ftString(文字)
    螢幕快照 2014-06-23 下午9.41.25

    十七、接著在畫面上的新增按鈕增加以下的程式碼

    螢幕快照 2014-06-23 下午9.44.13

    十八、接著我們要實踐刪除的功能,重覆十五、十六二個步驟。把新增的Query名字取名為TodoDelQuery,SQL改為

    Delete From Todo where ToDoItem = :ToDoItem

    螢幕快照 2014-06-23 下午9.46.04
    十九、在畫面上的刪除按鈕增加以下程式碼
    螢幕快照 2014-06-23 下午9.47.33
    二十、接著我們要在Listbox點入的時候,如果是有資料的話顯示刪除按鈕,沒有資料的話隱藏刪除按鈕,在ListboxItemClick寫入以下程式
    螢幕快照 2014-06-23 下午9.37.35

    二十一、接著我們要在部署的程式中新增SQLite資料,進入主選單的Project => Deployment,點選Add Files,選取C:SQLite下的todolist.db,platform先設定為Android,然後 Remote Path設為 assetsInternal

    螢幕快照 2014-06-23 下午9.48.30
    螢幕快照 2014-06-23 下午9.50.13

    二十二、最後,我們要做一個確保能建立資料庫的動作。先在程式碼的uses 加上 System.IOUtils

    接著在TodolistConnectionBeforeConnect加上 螢幕快照 2014-06-23 下午9.52.36

    以及TodolistConnectionAfterConnect加上

    螢幕快照 2014-06-23 下午9.53.38

    執行畫面

    10487181_10152091873441541_4210049703413957446_n

    10436173_10152091873396541_1969715166977094595_n

    10407160_10152091873301541_4588495957267531475_n

  • 相关阅读:
    warning MSB3245: 未能解析此引用。未能找到程序集“CemeteryBLL”。请检查磁盘上是否存在该程序集。 如果您的代码需要此引用,则可能出现编译错误。
    C#MVC中创建多模块web应用程序
    Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
    未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf385
    WebHost failed to process a request.Memory gates checking failed because the free memory (140656640 bytes) is less than 5% of total memory
    wamp安装后打开默认网页显示dir,图标红点
    数字转为大写,钱转为大写格式
    SpringCloud
    Spring Boot
    双重校验锁 --使用volatile和两次判空校验
  • 原文地址:https://www.cnblogs.com/honeynm/p/4194802.html
Copyright © 2011-2022 走看看