2009-12-28

清除MS SQL Server Management Studio 清除連線記錄

時常連線至不同SQL Server主機及用戶名稱,
累積久了,會有很多用不到的紀錄,
若要清除可以到下列的資料夾刪除檔案,即可!
C:\Documents and Settings\XXX\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin
XXX為使用者代號!

2009-12-26

MS SQL Server 2008 無法儲存資料表結構變更

使用MS Server Management Studio修改資料表結構時,
存檔時若顯示下列訊息
『不允許儲存變更。 您所做的變更會需要下列資料表卸除並重新建立。 您有做任何變更一個資料表,無法重新建立或啟用選項會防止儲存變更,需要重新建立資料表。』
請到
工具-->選項--> 設計師-->資料表和資料庫設計工具-->防止儲存需要資料表重建的變更

把勾選拿掉,即可解決!

2009-12-25

MS SQL 手動設定Transaction

透過SQL語法對資料庫查詢、異動是家常便飯的事情,
但是有時候因為一時的不查,
因為指令錯誤而誤刪或更新變成了錯誤的資料,
因為在MS SQL Query Analyzer中下指令,指令完成的同時,
系統的交易也一併結束,到時搥心肝也喚不回那些資料,
可以透過下列指令:
begin tran
commit tran
rollback tran
將自己的語法包起來,這樣在未執行commit tran,
一切的異動都不算完成,由自己控制雖然麻煩了點,
但未嘗不是件好事!
begin tran

select * into Pack_tmp from Pack
select * from Pack_tmp

rollback tran

select * from Pack_tmp
參考自:黑暗執行緒

Avira 小紅傘禁止廣告及設定MSN掃瞄路徑

Avira 小紅傘是一套不錯的免費防毒軟體,
每天更新後都會彈出一個廣告視窗,
其實隨手關閉一下就可以了,
但若是要禁止他出現可使用下列方法!
控制台-->系統管理工具-->本機安全性原則
-->軟體限制原則-->其他原則-->
新增下列兩個路徑規則,即可阻擋更新後的廣告視窗!
C:\Program Files\Avira\AntiVir Desktop\avnotify.dll
C:\Program Files\Avira\AntiVir Desktop\avnotify.exe

另外msn在接收檔案的時候會要求指定掃瞄的軟體,
工具-->選項-->傳輸檔案-->填上
"C:\Program Files\Avira\AntiVir Desktop\avscan.exe" /GUIMODE=2 /PATH=%file%

2009-12-23

PIVOT 資料交叉匯總

MS SQL 2005後開始支援的PIVOT語法,
若要將一個明細資料,如下圖


轉換成多維度的彙整資料 ,如下圖

--範例一語法如下:
select DepartNo,[0501],[0502],[0503],[0504],[0505],[0506],[0507]--要匯總的類別與分類
from (select DepartNo,PType,BalAmt--明細資料
        from #CosUBal_Depart_Tmp
        where IOType in ('A03','B01','B02','B03','B07')) as S
PIVOT
    (SUM(BalAmt)--要統計的欄位
        for PType
        IN ([0501],[0502],[0503],[0504],[0505],[0506],[0507])) as Piv
order by DepartNo
--範例二語法如下:
select *--要匯總的類別與分類
from (select DepartNo,PType,BalAmt--明細資料
        from #CosUBal_Depart_Tmp
        where IOType in ('A03','B01','B02','B03','B07')) as S
PIVOT
    (SUM(BalAmt)--要統計的欄位
        for PType
        IN ([0501],[0502],[0503],[0504],[0505],[0506],[0507])) as Piv
order by DepartNo
以上兩種寫法出來的結果如上第二張圖!

參考自:取之於網路用之於網路-只寫程式,TechNet

【轉貼】關於蝴蝶效應,青蛙現象,鱷魚法則,等等,你都明白嗎?

1、蝴蝶效應:上個世紀70年代,美國一個名叫洛倫茲的氣象學家在解釋空氣系統理論時說,亞馬遜雨林一只蝴蝶翅膀偶爾振動,也許兩周後就會引起美國得克薩斯州的一場龍卷風。  
蝴蝶效應是說,初始條件十分微小的變化經過不斷放大,對其未來狀態會造成極其巨大的差別。有些小事可以糊塗,有些小事如經系統放大,則對一個組織、一個國家來說是很重要的,就不能糊塗。

2、青蛙現象:把一只青蛙直接放進熱水鍋裏,由於它對不良環境的反應十分敏感,就會迅速跳出鍋外。如果把一個青蛙放進冷水鍋裏,慢慢地加溫,青蛙並不會立即跳出鍋外,水溫逐漸提高的最終結局是青蛙被煮死了,因為等水溫高到青蛙無法忍受時,它已經來不及、或者說是沒有能力跳出鍋外了。  
青蛙現象告訴我們,一些突變事件,往往容易引起人們的警覺,而易致人於死地的卻是在自我感覺良好的情況下,對實際情況的逐漸惡化,沒有清醒的察覺。

2009-12-14

Ubuntu-安裝LAMP...持續更新

LAMP = Linux+Apache+Mysql+PHP

$sudo apt-cache search -n apache2 --查詢可安裝的元件

$sudo apt-get install apache2 --安裝apache2
$sudo apt-get install mysql-server --安裝mysql server
$sudo apt-get install php5 --安裝php5
$sudo apt-get install phpmyadmin--安裝phpmyadmin

//--以下待確認
安裝MySQL for Apache HTTP Server
$sudo apt-get install libapache2-mod-auth-mysql
$sudo apt-get install php5-mysql

參考自:Daniel's House , D掉不累格

2009-12-10

StringReplace 取代特定字串

MS SQL裡有Replace函式可以查詢字串中特定的字元,並取代,
Delphi中也有內建的函式-StringReplace 可以使用,
StringReplace(字串,預備替換的字串,欲替換成的字串,[rfReplaceAll])

StringReplace('Dean Ma',' ','',[rfReplaceAll])
Result:DeanMa

2009-11-23

sp_rename 變更欄位名稱

想要變更某個table裡面的欄位名稱,
若嫌使用管理工具太麻煩的話,
可以使用sp_rename函示進行變更!
sp_rename('表格名稱.舊欄位名稱','新欄位名稱')
sp_rename('Prod.ProFac','PFac')
參考自:MSDN-sp_rename

2009-11-20

ADO Query Filter 含中文字解決方案

為了針對查詢出來的Query再做進一步的資料篩選,
常常用會用到Filter的功能,但目前發現若Filter的條件中,
包含了時間、中文字串,程式皆會死當,可以用下列方式解決此情況
//**在Query的onFilterRecord中寫入下列程式碼
if Trim(Edit_CusName.Text) <> '' then
   Accept := AnsiContainsStr(xQuery.fieldbyname('CusName').AsString,Edit_CusName.Text)
else
   Accept := True;
//**並於要觸發過濾的地方寫入
xQuery.Filtered := False;
xQuery.Filtered := True;
以上即可將上述的問題解套,但缺點是此事件會逐筆核對每列記錄,
若當資料量龐大的時候,會耗費不少時間,效益不佳!

參考自:Delphi.ktop

2009-11-13

isNumeric 判斷是否為數字

若要在資要庫中判斷字串是否為數字,可使用isNumeric()函數
根據回傳值 0-非數值、1-數值,進行篩選!
select * from STK
where isNumeric(LocNo)=1
參考自:MSDN-isNumeric

2009-11-09

REPLACE 更新資料表內特定字串

有時候因為資料建立錯誤,
需要將特定字串進行更替時,
可使用 REPLACE的語法進行替換,
REPLACE(欄位,欲被替換的字串,欲替換成的字串)
UPDATE Prod
SET Rem = REPLACE(Rem,'弔','吊')
where Rem LIKE '%弔%'
參考自:MSDN-REPLACE

2009-10-29

移除 GRUB 開機磁區管理

若硬碟內安裝了windows與Linux兩套系統並存,
移除Linux開機會出現 GRUB錯誤的訊息,
導致無法正常登入Windows,
此時可使用開機面進到Dos系統下後
輸入:fdisk /mbr 即可移除!

2009-09-28

修改系統預設桌面路徑

身為MIS最討厭的就是使用者習慣將資料都往桌面丟,
當電腦壞掉無法登入的時候就會跟你講這些資料有多重要多重要,
一定要幫他救回來,救是一定得幫他救,
但是如果是放在非系統槽的地方,是不是重新安裝完作業系統後,
直接再設定一下就可以使用這樣比較快呢?
利用修改登入檔的方式將常用的資料夾變更系統預設路徑!

開始-->執行-->regedit
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
我的最愛 x:\xxx\favorites
Desktop x:\xxx\Desktop
My Pictures x:\xxx\Desktop\My Pictures

2009-09-18

讓XP自動登入網域

公司主機有想要設定成一個星期自動重新開機一次,
自動重新開機沒問題,但因為有加入網域,往往重開機後,
就會停在輸入帳號密碼的地方,這樣有些外掛程式無法自動啟用,
可以透過下列方式,將XP設成自動登入!

開始-->執行-->regedit
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
DefaultDomainName -網域名稱
DefaultUserName -使用者名稱
DefaultPassword -使用者密碼(若無此項,自行建立自串值)
AutoAdminLogon -自動登入(設定值1:開啟、0:關閉)
設定完成重開機即可!

2009-08-16

Delphi抓取系統桌面路徑

uses Registry;

Function _GetDeskTopDir: String;
var root: TRegistry;
begin
 root:= TRegistry.Create;
 root .OpenKey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\SHELL FOLDERS', FALSE);
 Result := root.ReadString('DESKTOP');
 Result := UpperCase(Result);
 R.Free;
end;

2009-08-04

多重步驟操作發生錯誤,請檢查每一個狀態值

當程式在回寫資料至資料庫時,若出現
"多重步驟操作發生錯誤,請檢查每一個狀態值"
的訊息,表示回寫資料庫的某個欄位長度不足,
將資料庫欄位長度修正為適合長度即可!

2009-07-28

合併表格欄位抓取技巧

在SQL時常會用到table join,
例如table A與table B join,
我們要table A全部的欄位和table B部分的欄位,
可以在select後面接上 A.*
這樣即可抓到全部table A的欄位,
不需要在一個一個打出 table A 的FieldName。
select A.*,B.field1,B.field2
from TABLEA A,TABLEB B
where A.Key=B.Key

2009-07-18

清除 MS SQL 2008 交易記錄

之前的清除方式已無法使用,
BACKUP 這個指令在2008已被停用,
目前找的到解決方法如下
DBCC SHRINKFILE (log_filename,size)
注意:需先將資料庫的模式改為-簡單

DBCC SHRINKFILE (ERP_log,2)
將交易記錄檔的大小壓縮到指定的大小

MircosoftTechNet-DBCC SHRINKFILE

2009-06-22

使用 sp_help 查詢資料表相關資訊

在Microsoft SQL Server Management Studio嫌一個一個去點設計
來看table的schema的話,可以藉由sp_help的語法直接查詢
sp_help TabeName
sp_help Prod

2009-04-10

取消 Windows 檔案總管的影片預覽功能

當硬碟中存在許說影片時,開啟檔案總管會自動顯示預覽畫面,
造成電腦loading大增,造成反應過慢,用下列指令可將此功能關閉!

關閉XP預覽功能:於執行輸入 regsvr32 /u shmedia.dll
開啟XP預覽功能:於執行輸入 regsvr32 shmedia.dll

2009-02-05

去除MS SQL欄位中空白

在擷取資料的時候,有時因為使用者輸入錯誤,
可能造成資料欄位中有空白的資料,造成程式比對錯誤,
MS SQL只提供LTrim(去除左邊空白)、RTrim(去除左邊空白),
若要同時去除左右兩邊的空白話可使用REPLACE(欄位,' ',''),
將欄位中的空白部分全部取代成空值。
select REPLACE(PnameD,' ','')
from Prod