2010/01/30

讀書心得:C++ Builder資料庫程式設計-人事薪資系統實作


<陪我走過最最艱辛的加班時光的工具書>

這本書入手也快4年了,對這本書真的有深厚的感情,其實,到現在,它還是我常常拿在手中的一本 武器 工具書。

其實,在我剛踏入程式設計領域時,我真的完全有看沒有懂,但是看著作者講得 天花亂醉 如夢似幻,心裡也很想享受駕御DBExpress的快感(謎之音:到底誰會想要這種快感呀……)

後來,稍微懂了資料庫程式之後,再回來看這本書,真的,看懂一些了,也大概知道作者所要表達的是什麼了。



一心手癢難耐的我,就開始對手上的專案開始塗改了!(哥哥有練過,小朋友要學…也是可以的啦!)

從BDE->BDE / DBX共存,到純DBX,中間花了數不清的加班時間,有很多BDE很方便的,但DBX卻要很迂迴才能辦到的處理方法,比方說:像Setkey就是一個例子,但是DBX也有很優的MYBASE可以使用(TClientDataSet應用),比起使用BDE + PARADOX來說,無疑是方便上許多 BDE雖然也可以這樣做,但我也是在使用DBX之後才知道BDE也可以這樣玩。

做了前面六個章節後,發現專案已經完成七、八成,原來我的專案還不夠花俏呀!哈哈!

<被我凌虐到開始掉頁的可憐書>

萬變不離其宗,做到這裡才發現其實DBX與BDE並沒有差那麼多,與VB5、6的DBGrid->DataGrid的 暴力 和平演變,BDE->DBX比較起來還是順暢多了。

也多虧有看這本書,現在才會開始利用Firebird embedded資料庫來開發程式,比起使用BDE+ODBC封裝程式,DBX及麻吉的InterBase姐妹品似乎有更優的相容性,在封裝給客戶時也很直接,真是令人意外的發現呀!

最後,再來說說這本書的缺點吧:
一、錯字很多
二、有些地方排版錯誤
三、裝訂品質不是太好
四、貼到Delphi的程式碼

2010/01/25

家裡有很多「老兵」-- 其一

其實小時候不學無術,長大後才知道自己買了多少怪「雞絲」

為了一圓自己當漫畫家的夢想,在n年前買了台Scanner--AGFA SNAPSCAN 1212P
是「P」喲!走的是LPT1介面的!不是USB!!!
<現在還在服役的老兵:AGFA SNAPSCAN 1212 P>

還…還真是老舊呀!但是呢,我家的電腦也好不到哪裡去--DURON 1.3G的舊舊電腦
不過還是裝了WINXP,怎麼樣也無法與這台古老級(還不到作古級)的SCANNER連線,原來是它的DRIVER不支援WINXP啦!哈哈,拜GOOGLE大神之賜,很快地找到了安裝它的辦法。花了不少時間來安裝,結果總算是能動了!

不過呀,好慢呀,老兄,你也真的太慢了吧!

話雖如此,我的畫作卻一張也沒掃進去過……(汗)

2010/01/21

VB6的DBGrid與DataGrid

最近接到了一個修改VB6專案的小程式,發現裡面有DBGrid元件,在開始讀這專案的時候,真是費了不少時間,想說,要痛就痛一次吧!

於是就開始進行替換工作,原本想說換好之後,在改成.NET2005應該會比較不痛一點,但沒想到DBGrid真是做的太好了,很多程式也要一併修改掉!

再者,這專案也會用到MSCOMM元件,VB.NET2005沒這玩樣!

花了不少時間在DEBUG工作…算了,還是選擇少重灌VB6好了 XD

2010/01/19

C++ Builder 全系列 我猜 無法安裝TPerlRegEx

最近在嚐試安裝TPerlRegEx(2008年的Final版)元件在C++ Builder上,安裝平台是:BCB6, CB2010,但卻都會發生異常的錯誤訊息。

可能針對的是Delphi版設計的吧,目前還找不到可以安裝在C++ Builder上的辦法
在Delphi社區已經被研究到爛的東西,想不到在cb上卻無法順利執行,真是嘔啊!

真的要找時間好好來研究Boost::Regex了。反正也是走正統Perl語法,哈!

2010/01/18

BCB6 + Boost::Regex

老東西還是能玩出新花樣吧
最近在K字串比對的花招,發現原來 C++ Builder 2010 有提供Boost類組來處理文字技術
那麼,使用Regex應該不是什麼難事吧

目前應用在delphi產品中很出名的TPerlRegex,新的版本(2008年出的)並不能安裝在 C++ Builder 2010上,當然,也不能安裝在BCB6囉!

目前唯一能用的是TPerlRegex 2005年推出的舊版本,雖然我不知道這其中多了什麼東西,但能用新的當然是越新越好啦!哈哈!

因為 C++ Builder 2010的Boost安裝程式不支援 BCB6 安裝(廢話),所以只能到 Boost 的官方網站上下載最新的版本。

咦?有1.41版耶!這足足比 CB2010 所提供的1.35足足多了近「0.1」的版次,想必功能應該更齊全吧!(其實根本用不到這麼多,只是簡單的文字比對而已……)

在 BCB6 上編譯時,發現沒問題!安裝也OK。但在include boost後測試demo,卻現在 BCB6 找不到1.40的檔案!還真是奇怪的問題,可能是1.41還在測試階段的關係吧,沒把安裝程式包好。

於是改用1.40版本,果然一切正常,花了一個星期的時間研究「如何安裝」…終於可以開始實測囉!!!

2010/01/14

這…應該是與2010的計畫無關吧

好…好吧
我承認我又開始走偏路了! XD

最近因為公司新開案的內容,有用到關於字串的驗証
字數有多有少,中間還有一槓…

一想就覺得是件需要用到大量程式碼的東西…

嗯…何不使用正規表示式呢?

於是又把精力花在正規表式上面了……

我想,最近研究這個的時間應該會比我寫程式碼的時間還要多吧,哈哈!

2010/01/11

果然,這真的代表小時候國中地理歷史不好…

最近開始準備導遊領隊考試

看了很多參考資料後…
來做做模擬考吧!

結果…

47.5...........

真是嚴重的打擊呀!

看來,國中史地真的要好好研讀了呀!!!

2010/01/07

SQL-92: CONSTRAINT 用法

這兩天在找Table的正規化方法找了老半天,所幸和Carey大聊過之後,有了初步的認知:

原來複合Key也是可以當作Table唯一的主Key呀!

於是就開始尋找複合Key的建立方式,後來在CONSTRAINT SQL運用中找到很漂亮的介紹。

好像是與Oracle有關,於是又在國外找到了與Firebird相關的SQL內容:
FireBird Database Constraints

以下是節錄部分的內容:
CREATE TABLE DAILY_PRODUCT_SALES (
DATE_OF_SALE DATE NOT NULL,
PRODUCT_ID INTEGER NOT NULL,
UNITS_SOLD INTEGER NOT NULL CHECK (UNITS_SOLD >= 0),
CONSTRAINT UNIQUE_DAILY_SALES
PRIMARY KEY (DATE_OF_SALE, PRODUCT_ID)
);

嗯嗯,看起來與Oracle差不多,或許這也是Ansi SQL-92的標準語法也說不定。

2010/01/06

這幾天看了終於開始看AIR了,不過…(續篇)

續上回AIR前六集的觀看心得後,又繼續把後面的七集給看完了。

前面感覺像是在鋪陳1000年前的事情,把所有轉生人物都介紹一次之後才開始正式進入1000年前的劇情。但…看完之後我還是沒找到摧淚因子……感覺有很多想交待卻沒敘述的劇情(按維基百科的說明是濃縮了很多劇情)。可能是 因為我不懂日文 遊戲沒有實際玩完吧。

但聲優真的很棒!
40歲可以演出14歲的聲音!真是無懈可擊!

完全著迷了呀!(倒)

題外話:如果日語教學錄影帶的老師聲音也是這麼可愛的話,我想學日語的人應該會爆增吧,哈哈!