Delphi的If…then..Else

在條件事選擇的時候,通常可以用幾種選擇性結構進行判斷
在php中 if 條件式是這麼下的

if (a!=0){
做什麼事;}else{
做另一件事;
}

如此一來,完成一個選擇性的結構
在delphi中,法語有一些些的不同,在if..than…else的結構中,不能放;(if條件句結束),如果要放;,只能加在begin…end中
下面是做按鈕的開關sample
If Edit1.Text=” Then
Button1.Enable:=false
Else
Button1.Enable:=true; <—最後要加分號做結束

多內容的If…Then…Else語法
If Edit1.Text=” Then
begin
Button1.Enable:=false;
Button2.Enable:=false;
Button3.Enable:=false;
end <—第1個End 不加 ; 最後一個End 才加;
Else
begin
Button1.Enable:=true;
Button2.Enable:=true;
Button3.Enable:=true;
end
;

Delphi的資料庫連接

1.dbexpress
2.ado
3.myodbc
4.3rd party object(Tmysql/zeros/MyDAC)

Tmysql
http://www.productivity.org/projects/tmysql/
看了介紹,Tmysql沒有使用TDatabase TQuery等,也不是使用BDE/ODBC
最後的版本在2002年的2月12日發佈
我用的是 Delhpi And C++ Builder 2009版的,不知道有沒有支援。

TDatabase是使用BDE(Borland Database Engine)
TQuery則是要設定ODBC資料來源(回想起當初出社會時,安裝軟體設定ODBC的痛苦)

MyDAC元件在網站是這麼介紹的
MySQL Data Aceess Componets,提供的物件蠻多的,請參考下圖
mydac_palette[1].jpg

下載頁在這裡,有免費版的可以下載
http://www.devart.com/mydac/download.html
重點是,有支援Delphi and C++ Builder 2009
而且,還有支援其他多種DB的連線
Oracle
SQL Server
InterBase
Firebird
PostgreSQK
(我又想去網路上找不是試用的版本了…唉宿命)
使用的是ADO.NET data provider, dbExpress drivers(不知道會不會連線成功)
首先,我沒有看到MyDAC的正式版或是破解版,所以咧,先用測試版跑看看。
在安裝的時候,出現了下面的訊息。
竟然找不到Hxds.dll
安裝MyDAC 5.8 for delphi and C++ Builder 2009,遺失Hxds.sll
經檢查,這是一隻微軟Help的元件,不過訊息上面說,這不是一個fatal(致命的錯誤),安裝會繼續完成。
這個錯誤訊息,一共出現了2次,我在想他是不是呼叫這件元件,來顯示他們的說明,anyway,不重要。
執行CodeGear RAD Studio 2009中的delphi 2009,出現了MyDAC的提示訊息,告訴我,我有60天的試用期。

哈哈~裝好了,就一個字爽
而且連接資料庫變的超簡單的

不過,看到他的價目表,嚇到我閃尿了!
標準 1人版 $129.95 USD金 群組版(4U) 299.95USD 網站版(同一間公司不限人數) $549.95 USD
專業 1人版 $199.95 USD金 群組版(4U) 499.95USD 網站版(同一間公司不限人數) $899.95 USD
其他的不敢看下去了(害我又想去找其他的版本了….)

* TMyConnection – lets you set up and control connections to MySQL database server
* TMyQuery – uses SQL statements to retrieve data from MySQL table or tables and supply it to one or more data-aware components through a TDataSource component and provides flexible data update functionality
* TMyTable – allows to retrieve and update data single table without writing SQL statement
* TMyStoredProc – executes stored procedures and functions
* TMyCommand – executes SQL statements and stored procedures, which do not return rowsets
* TMyScript – executes sequence of SQL statements
* TMyUpdateSQL – lets you tune update operations for a DataSet component
* TMyDataSource – provides an interface between a MyDAC dataset components and data-aware controls on a form
* TMySQLMonitor – allows to monitor dynamic SQL executing in MyDAC based applications
* TMyConnectDialog – allows you to build custom prompts for usernames, passwords, and servers
* TCRDBGrid – extends TDBGrid capabilities, provides visual access to filters and incremental search
* TVirtualTable – provides dataset functionality for data that has no real database connection
* MyDataAdapter – .NET component, uses TDataSet as data source for retrieving and saving data to System.Data.DataSet

MyDAC Professional Edition and MyDAC Developer Edition include the following additional components:

* TMyLoader – provides quick loading data to MySQL database
* TMyDump – serves to store a database or its parts as a script and also to restore database from received script
* TMyBackup – serves for backup copying specified tables on the server
* TMyServerControl – serves to control the server and execution of standard service tasks
* TMyEmbConnection – is used to establish connection to MySQL Embedded server
* TMyBuilder – serves to manage SQL Builder for MySQL Add-in
* TMyMetaData – retrieves metadata on specified SQL object
* TCRBatchMove – transfers data between all types of TDataSet descendants

另外,我找不到zeros的資料,網友說的不是很清楚。
The ZeosLib is a set of database components for MySQL, PostgreSQL, Interbase, Firebird, MS SQL, Sybase, Oracle and SQLite for Delphi, FreePascal/Lazarus, Kylix and C++ Builder.
網友寫錯了,是zeos,從zeoslib或sourceforge都可以下載
免費,開源,而且支援的好像也不少
只是不知道好不好用而以
剛才看了官網和下載完package之後
我失望了
因為目前6.X的版本,並不支援delphi 2009(12.0),只支援 Delphi V11
我再找看看其他delphi連接mysql的元件好了

剛才看到有網友用 mysql windows版的元件+dbExpress來連接Mysql,也許操作起來沒有像MyDAC這麼方便,不過,最少是不用錢的,而且MySQL元件,只要去下載Win 32的版本,可以取得,如果要做軟體發佈的時候,只要把libmySQL.dll copy到windows\system32下,就可以了,簡單方便許多。
有興趣的,可以參考這篇文
http://www.jackforfun.com/2008/11/delphi-2009-dbexpress-unicode-mysql-50.html?showComment=1247908318404#c6037813891210543481

Access violation at address in module 'libmysql.dll'. Read of address.
可是我照上面的試來來做
卻是有問題的,之前這台有灌過xampp和apps,不知道是不是元件的問題….唉,先測別的先

Delphi的變數轉型

因為,在php裡面,所有的變數都是自動轉型的,數字和字串都很好操作,也不會出錯,但是在直譯時,就是要犧牲部份的效率(其實感覺不太出來)。

VB和Delphi都要對變數的種類進行指定,而且,操作時,需要自己選擇轉型(網路上有看到別人寫,delphi也可以自動對變數進行轉型,但是不知道怎麼做)。
沒有關係,就照正統的方式來做吧!

整數變字串
inttostr();
字串變整數
strtoint();
ex:
inttostr(3)=’3′strtoint(‘3’)=3
相似的轉型涵數還有
floattostr();
strtofloat();

Delphi再一次親密接觸

其實,很久之前就想學Delphi了,因為之前自己有玩過VB,還寫了一個小的庫存管理程式,不過因為後來工作的內容都在玩硬體,也就沒有有再寫VB。

Delphi第一次是在9年前,工作的關係,有一個工程師用Delphi,他說操作和開發起來比VB還要快,而且很結構化,容易學習;當然,這是他個人的感受,因為那時玩了一陣子VB,也就沒有花太多的心力去學Delphi。

Delphi,是一種從Pascal(巴斯卡)演變而來的語言,後期的工具加入了視窗和物件導向的功能,讓使用者在Windows上可以很容易開發程式,當然,有一陣子推了一套Kylix系統,就是Delphi的linux版,設計師可以在很少的修改下,就可以在linux上開發出一樣功能的軟體或系統,當然,後來,就不了了之。

因為工作的關係,在三年多前,開始使用php+mysql來開發一些系統,不論是工作上,還是自己架的網站,因為Web Base的關係,使用者的學習曲線變直了,容易上手,但是單機版上跑Php,還是限制很多,光是環境和資料庫,應該就會吃了不少的資源。當然,Delphi運作模式是不同的,假設是三層式的架構,不用經過apache,自然,資源會少一點,但是資料庫的部份,可能就不一定了。

為什麼回來玩delphi呢?因為工作效率的關係,之前架設的網站,大多是使用hosting的方式,如果所有程式都在上面開發,很容易就把DB的存取次數用完(有幾個hosting service provider只可以在每小數中存取20000次),而且,也受限於網路傳輸的速度,如果可以在單機上跑,光個Access,可能就很夠用了,那個執行效率,自然就不用比了。

基本上,delphi程式運算的效能,只是吃單機上的資源(程式,dll),再對DB做access,分散在各Client的運算率能,就可以增加整體工作的效率,降低server建置的成本,一個個人電腦建構的db server,應該就足夠了,除了以上理由,另外delphi連接周邊配備的能力也比php強上許多,對於資料的收集以及分析,我想,這是我著眼的。

至於為什麼不回來用vb/vb.net呢?visual c++/c#/java這些語言也很不錯啊!我想,我的骨子裡是個反微軟的傢伙,能不用微軟的,就不用微軟的;網路上一堆人在講power build和delphi的支持與擁戴,其實當初我也想了很久,要用delphi還是power builder,反正解決方案這麼多,delphi都推25年了,基本的pascal語言,沒有太多的改變,假如,每3年5年,就要學新一種的開發環境,有一天,我會老,學的速度不如年輕人的時候,我還剩下些什麼?至於我的論點是不是對的呢?留給時間去解答。

免費Office 微軟迎戰Google

終於等到免費版的office了,授權標準版的office 2007,一套現在要價12500,微軟在推免費office之後,這筆花費可能可以省下來。

新聞摘錄如下
更新日期:2009/07/15 04:09

〔編譯陳成良/綜合14日外電報導〕 微軟 Google 的大戰越演越烈!繼Google擬研發個人電腦作業系統Chrome挑戰微軟霸主地位後,微軟13日也不甘示弱地宣布,將推出免費的網路版Office軟體,迎戰Google在線上應用軟體市場的鯨吞蠶食。

免費網路精簡版

微軟預定明年上半年推出最新版「Office 2010」,除傳統桌面執行版本外,也將提供可透過瀏覽器執行的免費網路版,包括Word文書處理、試算表Excel、簡報工具PowerPoint及 Outlook通訊程式的「精簡版」,準備與Google 3年前推出的「Google Docs」線上辦公室軟體一較長短。

說穿了,不過是一種雲端技術的實現,早在很久之前,網路上就有網路版的文書作業系統,叫作write it,後來韓國也有推出類似office的網路軟體,如果大家都把東西放在網路上,所有的服務都是網路系統提供,我想,免費officeq還真的有一定的吸引力。不過說真的,以google的docs為例,我以前為了資料備份的需求,所以把論文初稿(沒有完稿的都叫初稿),放在google docs上,實際上呢?破的亂七八糟,很多格式都跑掉了,其實檔案不大,才20頁左右的內容。

免費office的提供,我想一定是微軟最有相容性,因為他們是技術母廠,不過,光是網路速度的問題,就不可能全公司的人全都使用網路上免費的office,光是帳號和安全性的問題,我想可能就無法滿足許多企業的需求。

免費office,也有增加網路使用者對於微軟系統使用的黏度,比如說現在微軟推出的bing搜尋,可能就會內建在免費的office中,對於google的搜尋龍頭地位是有影響的。另外,google docs,早上提供共筆的寫作模式,類似群組軟體的功能,讓寫好的東西大家可以分享,當然,如果要拿來管理專案,也有一定的方便性。姑且不論免費的office會不會取代安裝版的office,微軟這麼做,可見雲端技術的推動,已經在默默進行中。

之前看到,蘋果也有類似的技術,讓使用都可以在網路上編輯圖案,再儲存在網路上,以使用時間和容量來計算,天啊!怎麼這麼東西在推,要全部測過,玩過,還真的不是那麼簡單。免費office,等別人用過沒有問題,我再測測唄,我可不想當小白鼠。

IE7/Firefox3開啟後 出現錯誤訊息

這幾天公司的電腦,不論IE還是Firefox,只要一開啟就會出現錯訊訊息,小紅傘沒有發現病毒,使用Google的免費掃木馬軟體(Spyware Doctor),倒時掃出一堆來,以為清掉就沒有事了嗎?結果一樣,IE/Firefox一開,還是出現錯誤,導致關閉,至時Google的Chrome一點事情也沒有,真的不知道是該高興還是難過。高興的是,我至少還有一個Browser可以上網,難過的是,有一些Active X的環境要用IE。

Read more

20090714地震

還沒有看到這次地震的深度與強度,直覺來說,這次地震還蠻大的,我家老老小小四個人全都醒了,可見這個地震的規模應該不小。

神奇的是,這時這刻,中央氣相局的網站異常的慢,是不是太多人進來查資料呢?應該沒有太多人知道地震要查中央氣相局吧!不過,真的很慢,如果真的有這麼多人進來查地震資料,我想對於地震,想要知道的人還不少。 對於國人知道地震要查中央氣相局,心裡還蠻高興的,不過,是不是搜尋引擎太強,我就不知道了。

資料出來了:

2009/07/14 02:16 宜蘭南澳地震站南方 20.2 公里 3.9
2009/07/14 02:05 花蓮秀林地震站東方 57.0 公里 6.3
2009/07/14 02:02 宜蘭南澳地震站南偏西方 18.9 公里 4.0

兩個地震隔不到3分鐘,而且震度都有瑞士規格4以上,不知道這樣算不是雙主震。另外,02:02這個規模4的地震,震源深度只有12.9公里,不知道算不算是淺源地震。02:05的地震,震央深度更淺了,只有9.4公里。台北、桃園、新竹、苗栗,震度2~3。 正在寫這篇的時候,又出現了新的地震,這算是正常的能量釋放嗎?從昨天到現在為止,總共出現了4個地震,而且都是在花東的外海。

02:02地震震度圖

02:05地震震度圖


最後的新聞說,這是兩次獨立的地震,彼此沒有關係,目前沒有任何傷亡傳出,不過,今天的內湖線會不會出問題啊!我還蠻擔心的。

WordPress 2.8.1版出現

好不容易,從wordpess 2.7.1升到wordpress 2.8.0,結果今天登入後台,2.8.1更新版出現了,搞不懂,為什麼才幾天就出現更新版。

之前wordpress 2.8.0就有聽說會如期發佈,在我看來,可能是趕著推出,不然wordpress 2.8.1更新版怎麼這麼快就出來了。

我還有好多個wordpress的Blog在2.7.0/2.7.1,更版快速,不知道是不是一件好事。

果不其然,看到官方文件,修正了很多的Bugs,另外,也接到安全性組織的報告,如果裝了某些的Plugin之後,可以看到一些非經授權的內容,這表示,這個版本的安全性做的不夠好,還是趕快修正好了。

WordPress 2.8.1 fixes many bugs and tightens security for plugin administration pages. Core Security Technologies notified us that admin pages added by certain plugins could be viewed by unprivileged users, resulting in information being leaked. Not all plugins are vulnerable to this problem, but we advise upgrading to 2.8.1 to be safe.

What else is new since 2.8? Read through the highlights below, or view all changes since 2.8

  • Certain themes were calling get_categories() in such a way that it would fail in 2.8. 2.8.1 works around this so these themes won’t have to change.
  • Dashboard memory usage is reduced. Some people were running out of memory when loading the dashboard, resulting in an incomplete page.
  • The automatic upgrade no longer accidentally deletes files when cleaning up from a failed upgrade.
  • A problem where the rich text editor wasn’t being loaded due to compression issues has been worked around.
  • Extra security has been put in place to better protect you from plugins that do not do explicit permission checks.
  • Translation of role names fixed.
  • wp_page_menu() defaults to sorting by the user specified menu order rather than the page title.
  • Upload error messages are now correctly reported.
  • Autosave error experienced by some IE users is fixed.
  • Styling glitch in the plugin editor fixed.
  • SSH2 filesystem requirements updated.
  • Switched back to curl as the default transport.
  • Updated the translation library to avoid a problem with mbstring.func_overload.
  • Stricter inline style sanitization.
  • Stricter menu security.
  • Disabled code highlighting due to browser incompatibilities.
  • RTL layout fixes.