星期五, 12月 07, 2012

TSQL LOCK!

         (UPDLOCK)    (HOLDLOCK)  (UPDLOCK,HOLDLOCK)  (TABLOCKX)
---------------------------------------------------------------------------
SELECT  not blocked    not blocked     not blocked         blocked
INSERT  not blocked      blocked         blocked               blocked
UPDATE    blocked         blocked         blocked               blocked
DELETE     blocked         blocked         blocked               blocked

 

http://stackoverflow.com/questions/7843733/confused-about-updlock-holdlock

星期四, 11月 15, 2012

Trigger insert, update, and delete

 

CREATE TRIGGER YourTrigger ON YourTable
AFTER INSERT,UPDATE,DELETE
AS
  IF EXISTS (SELECT * FROM INSERTED)
  BEGIN
    IF EXISTS (SELECT * FROM DELETED)
    BEGIN
      --UPDATE
    END
    ELSE
    BEGIN
       --INSERT
    END
    --handle insert or update data
  END
  ELSE IF EXISTS(SELECT * FROM DELETED)
  BEGIN
    --DELETE
    --handle delete data, insert into both the history and the log tables 
 
  END


參考資料  http://stackoverflow.com/questions/4391393/how-to-copy-an-inserted-updated-deleted-row-in-a-sql-server-triggers

星期二, 6月 05, 2012

Windows 8 Release Preview 安裝在VMWARE中 無法啟用網路問題排除

安裝後發覺系統不止告知無法認得網路界面卡,且連VMWARE TOOL都沒有安裝


排除方式
1.自行掛載WINDOWS.ISO.安裝

2.關閉VMWARE,修改 VMX 檔. 在最後一行加入
   ethernet0.virtualDev = "e1000"

星期二, 5月 29, 2012

Colt plus油耗追蹤 – 值得推薦的大空間省油小車

在年初就一直想以車主的角度來分享一些使用心得,但一直沒空出時間,直到某天上班路上以手機記錄到很特別的里程,才下定決心要分享幾篇Colt Plus的文章
Colt Plus 58888 公里記錄
購入Colt Plus已經三年多的時間,不知不覺里程已經破了6萬! 在這段時間內,最令我感到欣慰的是,油價雖然一直漲不停,但Colt Plus的超省油耗讓這6萬公里油錢的花費感覺還在可接受的範圍,每公里油費約1.9塊,長期記錄的油耗每公升約15公里,最好的油耗每公升甚至到16公里!


Colt plus的使用習慣給對油耗有興趣的車友參考:
個人開車習慣-不大腳,平時1/2路程在高速公路+快速道路上,上下班要開60公里,30公里在高速公路,快速道路約4公里


Colt plus磨合期油耗明顯比較差,後來油耗越來越省
0-1000公里的Colt plus油耗 14.61 (此時用出廠的機油)
1000-5000公里的Colt plus油耗 14.75 (此時用中油SM9000紫瓶)
5000-1萬公里的Colt plus油耗 15.63 (此時用中油SM9000紫瓶)
1萬-1萬五的Colt plus油耗 15.42 (此時用中油SM9000紫瓶)
1萬五-2萬的Colt plus油耗 15.46 (此時用中油SM9000紫瓶,2萬有換變速箱油,且機油改用好市多 chevron 5w/40)
2萬-2萬五的Colt plus油耗 16.00 (此時用好市多 chevron 5w/40)
2萬五-3萬的Colt plus油耗 15.43 (此時用好市多 chevron 5w/40)
3萬-3萬五的Colt plus油耗 15.47 (此時用好市多 chevron 5w/40)




回想當時,購車的動機非常的單純,主要是回到中部工作需要通勤的交通工具,雖然動機很單純,但比較與選擇車種卻是一點都不馬虎,當時先鎖定了三款1.6的小車:Colt Plus、TIIDA、ALTIS。在比較規格與實際試開的經驗,最後選擇了Colt Plus 雅緻雙安型,查看2008年的訂車單與型錄,感覺時光又回到了當時

2008年 Colt Plus 購車資料
回想會選此款車,主要是下列幾個因素
1.最平價具有2顆SRS的車款(2008年的車價)
    Colt Plus : 50.9 萬
    TIIDA : 58.5 萬
    ALTIS : 58.8 萬
2.能源局油耗測試數字亮眼

    Colt Plus : 16.8 km/L (平均油耗)、15.1 km/L (市區油耗)
    TIIDA : 16.0 km/L (平均油耗)、13.7 km/L (市區油耗)
    ALTIS : 14.7 km/L (平均油耗)、12.6 km/L (市區油耗)

3.超大空間&可利用的彈性

    Colt Plus : 620公升,後座放倒1548公升
    TIIDA : 467公升
    ALTIS : 475公升

4.較小的迴轉半徑

    Colt Plus : 4.7 m
    TIIDA : 5.25 m
    ALTIS : 5.3 m


以上在意的這幾點,在實際用車後,有些是日常即會有感受的,例如Colt Plus小的迴轉半徑與超省油耗、有些是當時以為不太重要,但使用上卻是十分的方便,例如Colt Plus後座椅放平的
方便性與大空間

剛好家裡落實資源回收已有好幾年的時間,之前常為了把回收品送到資源回收廠而要傷腦筋,因為前一部福特的車,裝載一些就滿了,若放在後座還會擔心弄髒座椅,現在Colt Plus就完全沒這個困擾,Colt Plus的大空間與方便性就用以下觀賞照片來舉例吧

Colt Plus 後座椅倒平
Colt Plus有後座快倒功能,左右二邊輕輕各拉一下,後座即往前倒平


準備裝載到Colt Plus的後車箱
準備上車的一部份

Colt Plus 大後車箱
上車中

Colt Plus 後車箱真方便
全部上車後,其實若不要亂塞,可以裝載更多

Colt Plus 後車箱塞真多
由駕駛座往後拍就知道還有很大空間

IMG_5567
發覺還有一堆報紙該怎麼辦?

IMG_5569
就放前座剛剛好! 再從剛才塞到後車箱拿個箱子來頂著避免往前滑動

以上可以看出Colt Plus後座空間的彈性,之前也試過只將一邊放倒,塞下二台大台折疊車!


同場加映Colt Plus杯架與掛勾的使用便利性
Colt+ Club

IMG_5554

IMG_5555

IMG_5556

IMG_5557

IMG_5558


地球只有一個,大家應僅量不要浪費任何資源! 在預算有限的情況下,Colt Plus真是一部超省油又大空間的小車,沒有錢或怕休旅車或貨車油耗兇的情況下這是一部值得推薦的車。



若問我Colt Plus使用上有沒有覺得什麼缺點,答案當然是肯定的,有機會再來分享保養的一些心得吧!

星期日, 4月 15, 2012

Excel Calculation Performance 計算效能

如何加快EXCEL的計算效能呢?
首先.建議你閱讀如下文章
Excel 2010 Performance: Improving Calculation Performance
將我覺得較有用的列出如下(個人為解決ole automation時的效率問題)



1.改變為手動計算  Excel.Calculation := xlCalculationManual;
   自行呼叫EXCEL.Calculate;
2.改變 Excel.WorkBooks[1].ForceFullCalculation := True
3.關閉"multi-threaded calculation"  Excel.MultiThreadedCalculation.Enabled := False;

關於第3點要特別說明,因為發覺EXCEL預設此選項為開啟的,但在實測卻覺得EXCEL的計算並不快速! 查看原文
"You can manually specify the number of threads to run at the same time. This number can be more than the number of processors on the computer. This is useful if, for example, you have XLL user-defined functions dependent on long-running external calls to a database server. If the database server can process multiple requests in parallel, you can effectively use multithreading even on a single-processor system."
可以得知,在特定的情況下開啟才會加快計算效能,而我個人測試.不論是在文章中的"環境"或是最原始的單一EXCEL環境,關閉此選項均比開啟來得快!

星期六, 4月 14, 2012

電腦的時間精度問題

之前寫的簡易校時,是因為發覺系統時間會有不準的情況,但當時並沒有去探討時間不準的情況有多嚴重


直到有支程式需長時間執行的情況下,才發覺此問題的嚴重性! 因為捉取到的資訊是包含了外部主機主機時間與主機寫入時間,久了竟然發覺時間差了2秒以上


最後請出了NTPClock,先取消自動校時的設定,長時間跑下來如下

1.開機約18小時.系統快了約1.5秒
校時18
2.開機約29小時.系統快了統2.9秒
校時29
3.測完2後.系統關機, 重開機後是約 42小時後(從開始計算開始), 系統慢了2.1秒
校時42-跟29間有關機
4.50小時,系統慢了1.7秒
校時50

此情況在WINDOWS 7 家用進階版上測試, 主機為ASUS 家用I7
以此情況來看.在WINDOWS執行時.系統時間會自動變快, 而在關機模式下,系統會變慢!
之後又在其它二台電腦上進行測試.有著相同的結果!
若你要進行測試.請先關閉WIDNOWS中的自動校時設定

星期六, 4月 07, 2012

SQL ERROR 9003 while attaching

程式執行時.發覺找不到系統所需的資料庫! 發覺DB己被卸載
手動掛載DB,於附加資料庫時出現 9003的錯誤訊息
發覺該台電腦有中毒.先行解毒! 備份MDF與LDF


進入緊急修覆模式
TSQL
ALTER DATABASE A01 SET EMERGENCY
ALTER DATABASE A01 SET SINGLE_USER
DBCC CHECKDB (A01, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS
此語法也無法修覆DB,最後使用前二者語法,讓DB可以讀取出資料,使用語法硬倒重要資料進到新DB

星期五, 3月 23, 2012

看不懂的SQL SERVER 2012 Express 記憶體限制-使用超過4G

查看微軟的說明文件,最新的SQL SERVER EXPRESS 2012 並沒有放寬記憶體使用1G的限制,但在我的一台測試機上,確實出現了超過1G的使用量
使用了TSQL語法查看記憶體使用量,與使用工作管理員查看.均是使用了2G,不解是文件錯誤,還是實際上有放寬!
使用的查詢語法如下
--查看SQL版本
SELECT SERVERPROPERTY('Edition') , SERVERPROPERTY('ProductVersion')
--查看SQL SERVER記憶體使用量
select cntr_value/1024 from master.dbo.sysperfinfo
where counter_name = 'Total Server Memory (KB)'

看官請自行查看下圖吧
image

更新資訊
3/28 使用達到3.3G



3/31 使用超過4G, 達到4.2G!
SQL Express 2012 use Ram over 4G


星期一, 3月 12, 2012

Read .xlsx file from OLEDB (office 2007)

Provider=Microsoft.Jet.OLEDB.4.0;Mode=Read;Data Source=xxx.xls;Extended Properties=Excel 8.0

change to


Provider=Microsoft.ACE.OLEDB.12.0;Data Source=xxx.xlsx;Extended Properties=Excel 12.0

星期三, 2月 15, 2012

XE2 教學課程 (RAD Studio XE2 Tutorial Series)

大半是STEP BY STEP的VIDEO,看完後相信會功力大增!

包含

  • 64-bit Windows applications
  • LiveBindings
  • mobile application development for iOS and Android
  • Windows and Mac development with one code base
  • FireMonkey styles


包含的產品有

  • Delphi XE2
  • C++Builder XE2
  • FireMonkey
  • RadPHP XE2
  • Embarcadero Prism XE2

Videos included in this Series

以上原始網頁資訊在

http://www.embarcadero.com/31-days-of-december

星期一, 2月 13, 2012

舊程式升級DELPHI XE2遇到的第一個問題

使用XE2開啟舊的程式(Delphi 2009)建立的專案,開啟時非常的順利,連提示轉換都沒有就直接開啟(不過儲存後他會很自動的變更DPROJ裡頭的編譯資訊)!

心想這麼聰明,一定編譯起來是非常的順利,不過在實際編譯後卻發生找不到"單元"的問題,例如程式中原來使用USE Jpeg卻提示找不到,查看後才發覺需變更為vcl.imaging.Jpeg


在XE2中也導入了像.NET中的SCOPE做法,詳細可以參考這二個連結

所以只要程式升級XE2後發生單元不存在的情況,都可以先來這裡查閱應加入什麼SCOPE NAME! 不過並不明白為什麼開啟時不自動轉換

 

以下列出常見的單元異動後的名稱

vcl.Graphics
vcl.Controls
vcl.Forms
vcl.Dialogs
vcl.Buttons
vcl.ExtCtrls
vcl.StdCtrls
vcl.Controls
vcl.ComCtrls
vcl.Grids

vcl.imaging.Jpeg   
vcl.imaging.pngimage
vcl.imaging.GIFImg


System.SysUtils
System.Classes

星期五, 1月 06, 2012

另人討厭的OLE error 800AC472!

問題: 由程式透過OLE開啟EXCEL,不定時會出現 OLE error 800AC472!


原因: 由程式開啟的EXCEL,若是使用者有對儲存格進入編輯模式(按下F2),即後續程式若再操作EXCEL即會發生

 

解決方式:

  • 不要將EXCEL的VISIBLE設成TRUE(若EXCEL是為了呈現及時計算的資料,此方式不可行)
  • 由程式測試是否為可更新模式 請參考MSDN討論區, 但此方式我在OFFICE 2007試不出來! 且使用者有可能是按下功能列上的儲存而造成相同錯誤

後記: 不知道為什麼不提供READONLY或ENABLED可供操作! 雖然可以在程式中操作表格是否可以異動,但程式若需寫入時,還是需要將表格變成可異動,只需要在短短的這段時間內,使用者按下F2一樣破功!

星期四, 1月 05, 2012

以最簡單的方式自動同步電腦時間

CMD : w32tm /resync





CODE: ShellExecuteW(Handle,'OPEN',pchar('w32tm'),PChar('/resync'),'',SW_HIDE);