Delphi透過MySQL存入檔案備份

MySQL存Blog的大小
TINYBLOB – 255 bytes
BLOB – 65535 bytes
MEDIUMBLOB – 16,777,215 bytes (2^24 – 1)
LONGBLOB – 4G bytes (2^32 – 1)

透過資料庫存取的方式重點:

TBlobField – LoadFromStream、SaveToStream
Tmemorystream – LoadFromFile、SaveToFile(.Position :=0)

存入資料庫

[pascal]
var
astream : Tmemorystream;
begin
AStream := TMemoryStream.Create;
try
astream.LoadFromFile(filename);
AStream.Position := 0;
if adotable1.Active then
begin
adotable1.Edit;
TBlobField(adotable1.FieldByName(‘t2’)).LoadFromStream(AStream);
adotable1.Post;
end;
finally
AStream.free;
end;
end;
[/pascal]

存回檔案

[pascal]
var
Ms:Tmemorystream;
begin
Ms := Tmemorystream.Create;
try
if adotable1.Active then
begin
TBlobField(adotable1.FieldByName(‘t2’)).SaveToStream(Ms);
Ms.Position := 0;
MS.SaveToFile(sname);
end;
finally
ms.Free;
end;
end;
[/pascal]

MySQL預設的BLOB為1M
別忘了 My.ini調整
max_allowed_packet = XXM

Delphi XE5 Android Kitkat Style下載

Delphi XE5提供 Andoird 4.4 Kitkat的樣式下載,使用的方式也相當簡單

1)在畫面上放一個TStyleBook元件

2)將 AndroidLight.fsf 或 AndroidDark.fsf 載入到TStyleBook元件

3)在 form oncreate事件加上~

{$IFDEF ANDROID}

if TOSVersion.Check(4, 4) then StyleBook := StyleBook1;

{$ENDIF}

下載網址: embarcadero網站

Delphi使用記憶體模擬表格的kbmmemtable

雖然在Delphi有clientdataset可以使用,但美中不足的是必需在程式部署時附上midas.dll,或是在程式中uses MidasLib。最近看到國外在討論的kbmmemtable,由於在寫餐飲的POS功能所以也來測試一下。

因為kbmmemtable不需要BDE支援,所以不用特別去設定DatabaseName, TableName和TableType這些屬性。

建立欄位很簡單,

with kbmMemTable1.FieldDefs do
begin
Clear;
Add(‘t01’, ftInteger, 0, false);
end;

建立index也只需要

Add(‘Index01’, ‘value’, []);

接著就可以像一般的ttable一樣,append新增edit修改delete刪除等動作…..

然後呢也可以直接讓datasource指定它,讓kbmmemtable的值顯示在dbgird上面。

它支援loadfromdataset的功能,如果需要cache資料在程式裡不要連結資料庫時,就可以利用這個功能。另外也可以支援savetofile的功能,共有二種

1)二進位資料

SaveToBinaryFile

LoadFromBinaryFile

2)csv格式

SaveToFile

LoadFromFile

 

Delphi 1stClass實現單選、複選按鈕

看到別人寫單選複選按鈕很簡單,於是努力的研究到底是用了什麼元件。才發現是用Woll2Woll 的1stCalss元件做到,自己寫的要死要活,別人簡單就達成了!orz

實現的方式很簡單,只要使用 TfcButtonGroup這個元件即可。

設定.ClickStyle 的屬性 bcsRadioGroup(單選)bcsCheckList(複選)

不裝eTag也能上高速公路,繳費查詢報你知

遠通eTag上路後,幾乎是天天罵聲連連….網友們也都在詢問「沒有裝eTag到底可不可以上高速公路?」答案是可以的,沒有裝eTag的話,在計費的機器旁邊也有一台車牌辨識系統,當然如果遠通辨識不出來的話您又賺到了XD

mobile01網友整理出來非eTag用戶文章「破迷思!非裝eTag不可?沒裝也有 9折優惠, 也不會有 5 元手續費

非eTag用戶
0負擔 免申辦,免儲值,使用後付費,資金靈活運用
0風險 無E-tag 破損/掉落/故障 導致無法感應扣款之風險,無保固期限,無需自費重貼之費用
0手續費 遠通120個服務中心(含直營)繳費免代收手續費,用路人無額外負擔
省很大 103/07/01起於於可查詢費用之日3日內繳費享有政府核定之通行費9折優惠
免煩惱 免擔心E-tag餘額不足導致無9折優惠及50元掛號作業費與300元罰鍰
好方便 主動查詢繳費,用多少繳多少,不用擔心被系統誤扣費用
好貼心 每15-16日歸戶為1筆通知,主動寄發平信提醒用路人繳費
好安心 絕不損傷前檔隔熱紙及大燈燈殼,節省不必要的浪費
好簡單 無E-tag一樣能暢遊國道,主動查詢繳費,不產生任何掛號作業費及罰單
加碼獨享 可於遠通官網登記電子信箱,系統主動寄發E-mail通知繳費資訊,形同簡易電子對帳單

不裝eTag之後,可以於三天後查詢(例:1/8上高速公路,1/11可以查詢),查詢的管道:

1)超商查詢:遠傳電信門市、7-11的ibon、全家的FamiPort、OK go、萊爾富的Life-ET自行列印帳單,每次列印將收取5元之手續費

2)網路查詢:

到下面的網站輸入車牌號碼及車主的身份證號(或公司統編)末4碼

https://css.fetc.net.tw/CS/CS02100Bill/BillQuery

因為系統上線後持續出現問題,導致許多軟體業界的朋友真的都看不下去了,甚至擁有深厚大型系統開發經驗的LeaderSoft的總經理Jini Gary Lee 為了證明自己不是嘴炮,還在facebook發文幫忙規劃系統架構了!

重點來了!如果要退eTag的朋友怎麼退呢?

最快的方式是直接到加盟或直營門市退掉,另外也有eTag帳戶終止線上服務網址( https://css.fetc.net.tw/CS/CS02060eTagTerminate/CS02060Query),線上終止後要到“直營”門市辦理退款(需帶存褶影本)

延伸連結:

一秒鐘同一感應門架被重複扣款

信用卡自動儲值Etag也被A了,有自動儲值的別忘了查一查

遠通電收系統eTag真不是普通的爛到爆!請小心你的荷包!

計程通行費試算網站 http://fare.fetc.net.tw/

POS系統設備 – 餐飲點餐卡/ 餐飲業問卷調查

在餐飲業用餐後,某些比較大型的連鎖餐飲體系都會附上一張滿意度問卷調查表,或是在一些比較沒有過多調味變化的餐飲店中,也會出現學生時代答案卡形式的點餐卡。

點餐卡雖然沒有太深厚的技術,不過對於店家來說卻是蠻便利的,只要將客戶畫記好的點餐卡放入OMR光學閱讀機中,就可以輸入到POS系統畫面中。節省許多點餐及詢問的時間~

關閉清粥小菜_點餐卡

關閉鹽酥雞_點餐卡

關閉餐飲業

延伸連結:
名科資訊有限公司 http://www.dartgoal.com.tw/

 

POS系統設備 – 取餐呼叫器

在客戶那邊看到了蠻特別的機器「取餐呼叫器」,透過簡單的發送器及接收器,可以免除要廣播、大聲叫號的問題。等於手上的號碼牌(取餐牌)是會自動提醒的。操作也很簡單,只要透過發送器按下號碼後送出,手上對應的接收器就會閃爍,可以用在需要叫號的各行各業,甚至用在目前正夯的健康照護產業也可以。

 

 

延伸連結:
漢偉科技有限公司 http://www.ehanway.com.tw/

 

PHP產生透明的png縮圖

二個重點函數
imagealphablending($thumb,false)
imagesavealpha($thumb,true);

[php]
function pngthumb($sourePic,$smallFileName,$width,$heigh){
$image=imagecreatefrompng($sourePic);//PNG
imagesavealpha($image,true);
$BigWidth=imagesx($image);
$BigHeigh=imagesy($image);
$thumb = imagecreatetruecolor($width,$heigh);
imagealphablending($thumb,false);
imagesavealpha($thumb,true);
if(imagecopyresampled($thumb,$image,0,0,0,0,$width,$heigh,$BigWidth,$BigHeigh)){
imagepng($thumb,$smallFileName);}
return $smallFileName;
}
[/php]

2014年初台北行

原本預計2013年12月26號北上的行程,因為急性腸胃炎的關係延到了2014年1月2日,一早就從豐原坐統聯北上。

抵達台北後,第一個行程馬上前往內湖與廠商洽談點餐卡的細節,廠商的研發工程師也是使用Delphi開發的,使用相同語言的好處就是相談甚歡而且迅速。洽談中才知道台灣這樣的廠商不多,所以許多餐飲集團的問卷調查、點餐卡都出自這家公司。

關閉鹽酥雞_點餐卡

關閉清粥小菜_點餐卡

OMR(Optical Mark Reader)的原理其實不會很複雜,主要是左手邊的黑色基準點以及右手邊讀回資訊的順序…..

回到客戶公司後,繼續討論開發的部份。

接著七點多跟客戶一起吃飯就入住了寧夏夜市附近的191旅店 。

由於客戶上班時間是早上10:00到下午7:00,所以第二天一大早先晃到附近的大稻埕、迪化街。

接著再跟客戶的經理一起到宜蘭羅東,幫忙客戶上線、教育以及採購XD。

由於許多細節部份,有不少商業機密,就不多加描述了 🙂
二天一夜的台北行,學習到了不少東西,也發現成功的人士有許多相同的共同點。