跳到主要內容

發表文章

目前顯示的是 十月, 2013的文章

Day7 使用 LiteDAC 仿造一個 IBLite 的 Demo

在 EMBT 的 Youtube 中有一段 Demo 是在描述 dbExpress with IBLite 的範例

看起來很是麻煩,畢竟是單向資料集,需要用很多元件才能達成存取的目的。

使用 LiteDAC 時,就像在 VCL framework 的 2-Tier 下一樣簡單,底下是範例 Code
procedure TForm1.AddButtonClick(Sender: TObject); var DeptName: String; NewDeptNo: Integer; begin try if InputQuery('Enter New Dept Name', 'DNAME', DeptName) and not (DeptName.Trim() = '') then begin LiteQuery1.Last(); NewDeptNo := LiteQuery1.FieldByName('DEPTNO').AsInteger + 10; LiteQuery1.Append(); LiteQuery1.FieldByName('DNAME').Text := DeptName; LiteQuery1.Post(); LinkFillControlToField1.BindList.FillList(); end; except on e: Exception do begin ShowMessage(e.Message); end; end; end; /// procedure TForm1.DeleteButtonClick(Sender: TObject); begin try if LiteQuery1.Locate('DNAME', ListView1.Selected.Text, []) then LiteQuery1.Delete(); LinkFillControlToField1.BindList.FillList(); except on E: Ex…

Day6 FireMonkey 的幾個樣版

在新建立的專案中,Blank Application 是最常用的樣版,但 Header / Footer 和 Header / Footer with Navigation 實際上到底能不能用 Blank Application 做出來?

直接看看 Header / Footer 樣版的結構吧。
非常直白的三個元件 - Footer(TToolbar) + Header(TToolbar) + Label(TLabel)
如此就能構成一個帶有頭和尾的專案,就算用 Blank Application 先建立也不過是拉三個元件的時間。


再來看看 Header / Footer with Navigation 樣版的結構。
和原先的H / F很接近,主要是多了 TTabControl 這個頁面管理元件
和 VCL 裡的 TPageControl 很接近。

嗯,所以可以參考樣版來設計屬於自己的 Blank 專案。一面加強對 FireMonkey 元件的熟悉度。

Day5 LiteDAC - iOS開發的利器

當窮得只剩 PC 的時候...那就戰到不能戰為止吧!

在 iOS 應用程式部屬到設備上時有個很嚴重的限制:
就是在發佈應用程式時不能附帶任何的 libraries (*.dylib) 。

難道在資料庫的存取上就只能走 DataSnap 嗎?

當然不是,我們還可以使用 iOS 內部支援的 SQLite 當作本機資料庫使用,現在就來介紹新的工具吧 -- LiteDAC!

Devart 的 DAC 元件群(ODAC、MyDAC、PgDAC、IBDAC、UniDAC 和 LiteDAC)有個最大的特色,就是它不需要任何的 libraries (*.dylib),就可以直接存取資料庫。

今天就初步來介紹本次的主角 -- LiteDAC!

使用上非常的輕鬆,底下是原始碼:


procedure TForm1.FormCreate(Sender: TObject); var _Count: Integer; _Temp: TLiteQuery; begin _Temp := TLiteQuery.Create(Self); _Temp.Connection := LiteConnection1; LiteConnection1.Options.ForceCreateDatabase := True; LiteConnection1.Database := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'emps.sqlite'; LiteConnection1.Connect(); _Temp.SQL.Text := 'SELECT count(*) FROM sqlite_master WHERE type=''table'' AND name=''DEPT'' '; _Temp.Open(); _Count := _Temp.Fields[0].AsInteger; _Temp.Close(); if _Count = 0 then begin _Temp.SQL.Text := '' +'CREATE TABLE DEPT '…

Day4 RAD Studio XE5 第一支快快樂樂學寫手機程式誕生

非常快速的寫了一支Demo程式
真的很快啊!

可是在Android上卻發生沒有回應的問題
嗯……這該怎麼辦呢?


Day3 RAD Studio XE5 的 C++ ... 還是先從 Delphi 開始練習好了

不知道為什麼 C++ Builder 老是出怪手,不過我也沒時間 Debug 它了
等它的正式版推出了再回過頭來測試吧。

再來看看 Delphi 的實作狀況:

果然是順多了,沒有怪怪的異常訊息,和ClientDataSet也能夠正確 Binding 。

明日再來試著 ApplyUpdate 的實作

Day2 RAD Studio XE5 資料庫連線測試

因為測試時間不多
所以想快一點連線到資料庫

但…dbExpress怎麼突然都連不到資料庫了?

所以來到了 Devart 網站尋求支援了


搭配了 Firebird 2.5
底下 Devart dbExpress for Firebird 的連結畫面


好不容易裝好,卻在Compile時出現以下的錯誤

奇怪…照著手冊上的教學卻出錯了,不知道是哪裡的問題
總之,先這樣吧!

Day1 RAD Studio XE5 前置準備

首先就是準備下載 RAD Studio XE 5 ,準備進行 30 天的試用
以及準備一台 MAC 進行模擬測試

究竟 30 天可以玩出什麼東西呢?


我也不知道

總之,先做了再說吧 ^___^

FireMonkey框架核心概念是 LiveBinding 和 dot NET / Flex 所指的 Binding有異曲同工之妙

但我還是喜歡 Flex 的全時 Binding 的概念

FireMonkey / dot NET 都是一次性 Binding 的概念
如果資料異動了就需要重新 Binding …… 這和 Binding 的本意不太一樣吧 哈哈

在使用行動平台前,先用 C++ Builder 來試試看吧