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

閲讀次數:5279 發表時間:2014/06/25

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 命令列模式

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

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

四、連線名稱取名todolist

五、Database輸入todolist.db的完整路徑 c:\sqlite\todolist.db

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

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

八、新增一個欄位為ToDoItem,資料型態(Data Type)為Text

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

十、資料庫都連線完畢後,我們開始建立如下的畫面,先在畫面上放置一個置頂的ToolBar,裡面放一個置中的Label以及左右二邊的按鈕(一個新增、刪除),最後放上ListBox顯示資料

十一、接著我們要將資料與程式做連結,方式很簡單,把剛才建立的todo table按左鍵拖拉到畫面上後,可以看到畫面上自動產生todolistconnection以及todotable二個DBX元件。

十二、接著我們要將todolistconnection的connected設為True、todotable的active設為True。確定資料庫的連線是開啟的

十三、接著我們從畫面主選單的View選擇LiveBindings Designer。

十四、LiveBindings Designer是Embarcadero很棒的資料連結技術,利用視覺化的方式讓資料與元件屬性連結。在這裡我們要把todotable裡的todoitem顯示在listbox怎麼做?很簡單就是把todotable裡的todoitem拖拉到listbox1的item.text屬性就行了。連結完成後會發現多了一條箭頭,表示todoitem要顯示在listbox的item.text中。


十五、接著我們要實現新增的功能,先在畫面上放置一個TSQLQuery,Name設為todoaddquery,SQLConnection設為todolistconnection,接著設定sql指令如下

Insert Into Todo(ToDoItem) Values(:ToDoItem)


十六、設定好後,點選Params的屬性內會出現 ToDoItem的參數,我們將DataType設定為ftString(文字)

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

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

Delete From Todo where ToDoItem = :ToDoItem


十九、在畫面上的刪除按鈕增加以下程式碼

二十、接著我們要在Listbox點入的時候,如果是有資料的話顯示刪除按鈕,沒有資料的話隱藏刪除按鈕,在ListboxItemClick寫入以下程式

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


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

接著在TodolistConnectionBeforeConnect加上 

以及TodolistConnectionAfterConnect加上

執行畫面

Delphi APP 開發入門(八)SQLite資料庫的更多相关文章

  1. Delphi APP 開發入門(九)拍照與分享

    Delphi APP 開發入門(九)拍照與分享 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數:30 ...

  2. Delphi APP 開發入門(七)通知與雲端推播

    Delphi APP 開發入門(七)通知與雲端推播 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數: ...

  3. Delphi APP 開發入門(五)GPS 定位功能

    Delphi APP 開發入門(五)GPS 定位功能 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數 ...

  4. Delphi APP 開發入門(四)簡易手電筒

    Delphi APP 開發入門(四)簡易手電筒 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數:32 ...

  5. Delphi APP 開發入門(六)Object Pascal 語法初探

    Delphi APP 開發入門(六)Object Pascal 語法初探 分享: Share on facebookShare on twitterShare on google_plusone_sh ...

  6. Delphi APP 開發入門(十)REST Client 開發

    Delphi APP 開發入門(十)REST Client 開發 分享: Share on facebookShare on twitterShare on google_plusone_share ...

  7. Delphi APP 開發入門(三)簡易計算機

    Delphi APP 開發入門(三)簡易計算機 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數:68 ...

  8. Delphi APP 開發入門(二)Android/iOS設定,Hello World

    Delphi APP 開發入門(二)Android/iOS設定,Hello World 分享: Share on facebookShare on twitterShare on google_plu ...

  9. Delphi APP 開發入門(一)重生的 Delphi

    Delphi APP 開發入門(一)重生的 Delphi 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀 ...

随机推荐

  1. java-I/O File类(5)-Reader和Writer、OutputStreamWriter 、BufferedWriter、字节流和字符流的区别

      标签: outputstreamwriterreader字符file方法 2015-05-14 23:06 469人阅读 评论(0) 收藏 举报  分类: 孙鑫-java基础(16)  I-O(4 ...

  2. yii2.0操作数据库

    首先不得不说yii2.0面向对象的比较彻底,建议没学过或者没学好面向对象的同学再看看面向对象. 其次切入正题. 先创建数据库,这步自己写. DROP TABLE IF EXISTS `country` ...

  3. shell命令技巧——文本去重并保持原有顺序

    简单来说,这个技巧相应的是例如以下一种场景 假设有文本例如以下 cccc aaaa bbbb dddd bbbb cccc aaaa 如今须要对它进行去重处理.这个非常easy,sort -u就能够搞 ...

  4. unity导弹算法 预计目标点

    关于导弹的飞行算法,网上有很多教程.简单算法无非是获取目标点的当前位置,然后导弹朝目标方向移动.高深点的,就是通过计算获取碰撞点然后朝着目标移动.如果你能看懂这个高深算法的话,可以去看原帖:http: ...

  5. Appium移动自动化测试(一)--工具软件安装

    Appium移动自动化测试(一)--工具软件安装 详情参考-- http://www.cnblogs.com/fnng/p/4552438.html 第一节  安装node.js Appium 官方网 ...

  6. PMP十大知识领域整理

    2018-7-28至2018-12-8历时4个多月,学写了PMP(拍马屁),感觉自己经历了,哇-唉-哦-嗯这四个阶段 刚开始觉得如遇圣经,被PMP的知识体系和老师的精彩课程深深震撼! 后来觉得很多东西 ...

  7. struts2中s:iterator 标签的使用详解 及 OGNL用法

    简单的demo: s:iterator 标签有3个属性:value:被迭代的集合id   :指定集合里面的元素的idstatus 迭代元素的索引 1:jsp页面定义元素写法 数组或list <s ...

  8. [Jenkins] 解决 Gradle 编译包含 SVG Drawable 出现异常

    异常信息 java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of th ...

  9. MapRecude

    任务:分析通话记录,查处每个手机号码有哪些打过来的号码 13510921776 10086 13710148751 10086 13914248991 10086 13510921776 137101 ...

  10. sql中字段名中包含特殊字符的查询方法

    sql中字段名章包含特殊字符的查询方法:例如包含"",student表中字段为:id“学号”.name"姓名". 解决办法:用英文下的 "`" ...