之前寫過一篇 MS SQL 利用Trigger紀錄Table異動資料,
雖然可以記錄每次異動的資料,但缺點就是每個table欄位不同,
就要將每個要記錄的table分開新建tablex來記錄,感覺似乎也不太適合大量使用,
後來有用到XML STUFF,發現XML格式也可適用此問題,來達到記錄異動資料的需求,
好處就是不用考慮每個表格欄位數的多寡,一個欄位就可以達到記錄目的!
2014-12-30
2014-11-20
[MS SQL] 查詢包含特定字串之Proc、Function、View
--查詢包含特定字串之Proc、Function DECLARE @TmpStr NVARCHAR(MAX)='Factory=@CorpNo' SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%'+@TmpStr+'%' AND ROUTINE_TYPE ROUTINE_TYPE IN ('PROCEDURE','FUNCTION') --查詢包含特定字串之View SELECT TABLE_NAME,VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE VIEW_DEFINITION LIKE '%'+@TmpStr+'%'
參考自-青年廣論研討班-如何在SQL Server 資料庫中 找出符合你的關鍵字的Store Procedure
2014-10-23
[敗家] ICCASU帆布鞋 男鞋/女鞋
先前幫老婆買過ICCASU的雪靴,評價不錯,
所以一直有在注意這個牌子的鞋子,這次一看到帆布鞋開團,
查了一下先前的評價都不錯,畢竟從對岸買東西,運費也不便宜,
儘量湊滿重量比較實惠,於是一口氣買了兩雙男鞋+女鞋...
男-牛仔藍 / 男-卡其 / 女-鏡面紅花 |
2014-10-21
[Delphi][MS SQL] HOST_NAME()抓取主機名稱錯誤
前幾天寫了一個當登入失敗時,紀錄登入者的IP、主機名稱、時間...等,
今天去看LOG檔才發現,怎麼主機名稱都一樣 ,
明明在MS SQL Server Management Studio執行時都可以正常抓取,
後來才發現在Delphi內的ADO Connection設定連線時,
會將連線主機的名稱寫在Connection內的Workstation中,
而當我們使用T-SQL執行HOST_NAME()時,
反而直接抓取此參數資料,而非透過Server查詢,
今天去看LOG檔才發現,怎麼主機名稱都一樣 ,
明明在MS SQL Server Management Studio執行時都可以正常抓取,
後來才發現在Delphi內的ADO Connection設定連線時,
會將連線主機的名稱寫在Connection內的Workstation中,
而當我們使用T-SQL執行HOST_NAME()時,
反而直接抓取此參數資料,而非透過Server查詢,
[Chrome][Firefox] Stylish Script推薦
因為習慣使用MacType渲染字體,但這兩家瀏覽器改版的特別勤快,
原本可以正常渲染的字型,改版後突然變得不行,
研究了一陣子,才知道有Stylish這東西,
可以透過CSS修改字型顯示,甚至修改網站的版面,
下面列出目前我有在使用的幾個不錯的Script~
原本可以正常渲染的字型,改版後突然變得不行,
研究了一陣子,才知道有Stylish這東西,
可以透過CSS修改字型顯示,甚至修改網站的版面,
下面列出目前我有在使用的幾個不錯的Script~
2014-10-20
2014-10-19
[Chrome]更新後設定頁面空白無法正常顯示
因為一習慣使用MacType渲染字體,但Chrome升級36版後一直有一個困擾,
就是設定頁面都無法正常顯示,這樣都無法進行設定的變更,
連帶擴充套件也是一樣的問題,甚至讓我一度想要跳回去Firefox,
就是設定頁面都無法正常顯示,這樣都無法進行設定的變更,
連帶擴充套件也是一樣的問題,甚至讓我一度想要跳回去Firefox,
2014-10-16
[Delphi] 設定Windows作業系統預設印表機
Procedure SetDefaultPrinter(xPrintName: string); var buffer: array[0..255] of Char; name: string; begin name := xPrintName; if AnsiPos(',', name) = 0 then begin name := name + ','; end; StrPCopy(buffer, name); WriteProfileString('windows', 'device', buffer); StrCopy(buffer, 'windows'); SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@buffer)); end;
參考自-Solnone 螺旋旅人-Delphi 設定預設印表機
2014-10-13
[Chrome] 使用Stylish取代MacType渲染
一直以來都有使用MacType渲染的習慣(EzgdiV5),
尤其是Windows原生的字體超細,瀏覽網頁看久了都會不舒服,
不過自從Chrome 32bit-3X版 和 64bit 開始,MacType的渲染失效了,
整個就是不習慣,只好一直忍著不升級,
一直到發現可以用Stylish修改,才把版本升上來試用看看,感覺效果還不錯!
2014-10-07
[Delphi XE7]TListView MultiDetailItem 安裝
TListView預設只能顯示一筆Detail,
如果想要顯示多筆資訊,需要自己手動Install Package,即可達到需求。
1. 預設文件中即包含安裝檔,按照下列路徑尋找
C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\Mobile Samples\User Interface\ListView
2. 查詢 *.dpk檔,打開檔案
SampleListViewRatingsAppearancePackage.dpk
SampleListViewMultiDetailAppearancePackage.dpk
如果想要顯示多筆資訊,需要自己手動Install Package,即可達到需求。
1. 預設文件中即包含安裝檔,按照下列路徑尋找
C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\Mobile Samples\User Interface\ListView
2. 查詢 *.dpk檔,打開檔案
SampleListViewRatingsAppearancePackage.dpk
2014-09-03
[MS SQL] 搬移MS SQL Server 資料庫MDF檔
因為沒有經驗所以當初MS SQL Server上線時,皆以預設值安裝,
也就是說,資料庫檔MDF和交易記錄檔LOG,皆存放於系統槽內,
最近發現C槽的空間已經快要被用滿了,後來一查才發現,
原來是資料庫MDF檔,隨著上線時間時間逐漸膨脹,
今天以卸離、添加的方式搬移資料庫檔案,以釋放系統槽空間,步驟相當簡單。
也就是說,資料庫檔MDF和交易記錄檔LOG,皆存放於系統槽內,
最近發現C槽的空間已經快要被用滿了,後來一查才發現,
原來是資料庫MDF檔,隨著上線時間時間逐漸膨脹,
今天以卸離、添加的方式搬移資料庫檔案,以釋放系統槽空間,步驟相當簡單。
2014-08-21
[MS SQL] 修改使用中資料庫的定序
--修改前將資料庫設定為單一使用者模式(SINGLE_USER) ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE --修改資料庫定序 ALTER DATABASE DBName COLLATE Chinese_PRC_Stroke_CI_AS --修改後將資料庫改回允許有權限之帳號存取模式(MULTI_USER) ALTER DATABASE DBName SET MULTI_USER
參考自
MSDN-ALTER DATABASE SET 選項 (Transact-SQL)
MSDN-將資料庫設定為單一使用者模式
2014-08-19
[MS SQL] 字串(前中後)含有空白字元問題 LEN()、DATALENGTH()
今天在做字串資料處理時,跑處來的結果一直有問題,後來逐步測試才發現,
寫了那麼久的程式,我竟然沒有注意到,如果使用LEN()函數,
空白字元如果位於字串的後方,計算字串長度時,是會省略不計算的,
這次需要改用DATALENGTH()計算,才可以正確抓取字串長度!
但是有一點需要注意,DATALENGTH()是計算位元組,
當資料型態是NCHAR()、NVARCHAR()時,取得的長度會不一樣!
寫了那麼久的程式,我竟然沒有注意到,如果使用LEN()函數,
空白字元如果位於字串的後方,計算字串長度時,是會省略不計算的,
select '前面空白'=CONVERT(VARCHAR,LEN(' 123ab')), '中間空白'=CONVERT(VARCHAR,LEN('12 3ab')), '後面空白'=CONVERT(VARCHAR,LEN('123ab ')) /*----------------------------------結果----------------------------------*/ 前面空白 中間空白 後面空白 ------------------------------ ------------------------------ ------------------------------ 6 6 5
這次需要改用DATALENGTH()計算,才可以正確抓取字串長度!
select '前面空白'=CONVERT(VARCHAR,DATALENGTH(' 123ab')), '中間空白'=CONVERT(VARCHAR,DATALENGTH('12 3ab')), '後面空白'=CONVERT(VARCHAR,DATALENGTH('123ab ')) /*----------------------------------結果----------------------------------*/ 前面空白 中間空白 後面空白 ------------------------------ ------------------------------ ------------------------------ 6 6 6
但是有一點需要注意,DATALENGTH()是計算位元組,
當資料型態是NCHAR()、NVARCHAR()時,取得的長度會不一樣!
select 'VARCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(VARCHAR,'2238# '))), 'NVARCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(NVARCHAR,'2238# '))), 'NCHAR'=CONVERT(VARCHAR,DATALENGTH(CONVERT(NCHAR,'2238# '))) /*----------------------------------結果----------------------------------*/ VARCHAR NVARCHAR NCHAR ------------------------------ ------------------------------ ------------------------------ 6 12 60
2014-08-07
[MS SQL] 快速刪除資料庫中所有表格內資料
最近公司SQL Server在做移轉主機動作,因為牽涉到降版(2008 R2 Express -> 2008)的問題,
無法直接備份還原資料庫到新主機,所以一直在測試複製數據的方式,
一開始很笨的每次都將資料庫整個刪掉再透過語法重新建立表格,
因為懶的慢慢測試,後來還是google到了方法~
無法直接備份還原資料庫到新主機,所以一直在測試複製數據的方式,
一開始很笨的每次都將資料庫整個刪掉再透過語法重新建立表格,
因為懶的慢慢測試,後來還是google到了方法~
2014-08-04
[育兒] 使用webofcam-自架免費wifi嬰兒監視器
原本還擔心小朋友都五個月大了怎麼完全不會翻身,
結果某天突然學會之後便無時無刻都想要翻身,
因為已經不像以前肯乖乖的躺著,此時便需要時時在旁邊注意,避免發生危險。
老婆自己在家帶小朋友真的很辛苦,一堆事情要做,
擠奶、做副食品、清潔環境,零零碎碎的事情很多,
但總不能無時無刻都把小朋友綁在身邊,尤其夏天,沒在冷氣房一不小心會起汗疹、熱疹的,
如果小朋友願意躺著自己玩,我們就盡量都讓他自己躺著,
因為家裡是透天厝的關係,房間在2樓,每次這樣跑上跑下的也不是辦法。
2014-05-16
2014-05-02
[育兒] 彰化成美醫院月子中心
月子中心的口袋名單原本有 彰基、楊漢銘、成美,
不過既然打算在成美做產檢跟生產,看過環境後,
覺得還可以,為避免老婆生產完舟車勞頓就直接決定在成美月子中心,
其他家就沒有去看過,所以這邊直接以成美月子中心介紹為主。
不過既然打算在成美做產檢跟生產,看過環境後,
覺得還可以,為避免老婆生產完舟車勞頓就直接決定在成美月子中心,
其他家就沒有去看過,所以這邊直接以成美月子中心介紹為主。
2014-05-01
[攝影] 我的數位照片整理術
雖然我攝影是我的興趣,但不是會專程拿著相機出去外面拍照的人,
2013年從老婆懷孕後就很少出門去玩,自然拿起相機按下快門的機會就少了很多,
照片也是少的可憐,大多都只用iphone隨身記錄而已,
但是隨著今年小朋友的報到,假借拍小孩藉口買了SONY A6000L後,
現在小朋友在哪裡,幾乎相機就跟到哪裡,
所以整個照片的數量大爆炸,每天拍一點拍一點,一個月下來也不少,
再加上,現在開始養成習慣會將相片加上tag,方便以後找照片,
所以現在整理一次照片都要花點時間,不像以前把不好看的刪掉弄個資料夾存放就好
也因為這些原因,便開始尋找好用的照片整理工具,
不過似乎沒有一套可以直接完成我的需求,
所以我就用...
2014-04-28
[DIY] 帶路雞
傳統習俗女方在準備嫁妝時,都會有一個叫做"帶路雞"的東西,
去年結婚時老婆嫌外面嫁妝店的都不好看又不實用,
乾脆就自己買材料包回家手做,現在就擺在床頭當作擺飾,
去年忘記要記錄一下製作過程,
今年剛好妹妹要出嫁,老婆決定再做一個送給小姑,
2014-04-24
[敗家] 小米小鋼炮藍牙喇叭
我只能說,小米的東西,實在是非常有創意又便宜,
踏入小米的網站,一不小心就會發現購物車裡面怎麼有東西等著結帳了XD
小米因各國分公司經營問題所以大陸小米東西無法直接寄回台灣,
網路上常見的教學是利用集貨的方式轉運回到台灣(例如...爽購),
不過這樣會有一個問題,當發貨量大後大陸小米可能會將該住址列入黑名單禁止發貨並退款,
所幸剛好同事前往大陸出差,就麻煩請他幫忙帶回台灣,
這次買了 小米小鋼炮藍牙喇叭、小米隨身WIFI、傳輸線 及 手機繩,
加起來一千二有找,自己愛花錢又安慰自己,
你看看,買這麼多東西台幣不到1200...( 飛踢
這篇就先介紹-小米小鋼炮藍牙喇叭
規格(擷取至官網)
踏入小米的網站,一不小心就會發現購物車裡面怎麼有東西等著結帳了XD
小米因各國分公司經營問題所以大陸小米東西無法直接寄回台灣,
網路上常見的教學是利用集貨的方式轉運回到台灣(例如...爽購),
不過這樣會有一個問題,當發貨量大後大陸小米可能會將該住址列入黑名單禁止發貨並退款,
所幸剛好同事前往大陸出差,就麻煩請他幫忙帶回台灣,
這次買了 小米小鋼炮藍牙喇叭、小米隨身WIFI、傳輸線 及 手機繩,
加起來一千二有找,自己愛花錢又安慰自己,
你看看,買這麼多東西台幣不到1200...( 飛踢
這篇就先介紹-小米小鋼炮藍牙喇叭
規格(擷取至官網)
2014-04-18
[育兒] Pognae SMART 智慧3合1座墊型背巾 開箱
現在老婆請育嬰假專心在家帶小孩,
雖然說跟爸媽一起住,可以幫忙照顧,但有時也可能都外出只剩老婆自己在家,
所以老婆一直說要買個嬰兒揹袋,這樣自己在家或者外出都可以使用。
就這樣物色了好久,原本已經打定主意要買ergo,
除了價格可接受,評價也都還可以,原本想說省一點從美國找代購,
後來才發現"有時候"COSTCO也會有在販售,
不過我想我家老婆大人不會同意等到COSTCO有在賣的時候才入手吧...XD
就這樣,又問了眾多媽媽朋友們,發現推薦Pognae的不少,
也有媽媽ergo、Pognae都有買,直接推薦Pognae比較好用又透氣,
他這麼說我們是信了,就決定是你啦...XD
2014-04-17
[育兒] 彰化產檢醫院心得
話說小朋友已經滿兩個月了,現在才回來寫這一篇會不會太晚XD
從老婆確認有小朋友後,就到處詢問查詢彰化推薦的婦產科,
不過網路上可以參考的資料實在不多,所以特別寫這這篇給準爸媽參考,
畢竟大家都希望過程中不要有任何的差錯。
彰化常見的婦產科就屬彰基、成美、順安比較多人推薦,
不過我們只有去過彰基及成美,所以只單就這兩間做心得說明。
從老婆確認有小朋友後,就到處詢問查詢彰化推薦的婦產科,
不過網路上可以參考的資料實在不多,所以特別寫這這篇給準爸媽參考,
畢竟大家都希望過程中不要有任何的差錯。
彰化常見的婦產科就屬彰基、成美、順安比較多人推薦,
不過我們只有去過彰基及成美,所以只單就這兩間做心得說明。
2014-04-14
[敗家] SONY A6000L 開箱 之 錢井深
攝影真的是一個非常坑殺"小朋友"的壞興趣,
一直以來都用Panasonic的微單,
從一開始超夯的GF2,預購到拿到機子等了兩個月,
因為剛入門也不是很懂,唯一讓我覺得比較大的缺點就是可用ISO實在低的可憐,
在室內光線不足的地方若無大光圈鏡頭加持,就乾脆不拿出來用了,
但自從用了20mm f1.7後,體會到大光圈的魅力,
就趕緊把14mm f2.5出掉,娶了20mm f1.7回家,從此過著幸福美滿的日子...
一直以來都用Panasonic的微單,
從一開始超夯的GF2,預購到拿到機子等了兩個月,
只剩泛黃照片可供追憶~ |
在室內光線不足的地方若無大光圈鏡頭加持,就乾脆不拿出來用了,
但自從用了20mm f1.7後,體會到大光圈的魅力,
就趕緊把14mm f2.5出掉,娶了20mm f1.7回家,從此過著幸福美滿的日子...
2014-04-13
2014-04-10
變更Picasa縮圖資料庫位置
最近改用Picasa來管理我的照片,不過在設定裡面找了半天,
發現竟然沒有可以修改縮圖存放位置的設定,
後來才知道預設是在C槽,這樣只會把系統空間都吃光,
後來google一下其他人的分享,利用資料夾捷徑的方式,將資料夾設定到其他地方,
在命令提示字元下,輸入
特別說明
1.adminstrator依登入的帳號而定,如果使用者帳號是jhon請輸入jhon
2.動作前,請先將C槽Picasa2資料夾下的資料全部移到新設定的目的地或者刪除
執行成功後會出現含有建立連結成功符號的訊息!
參考來自
解決Picasa 塞爆你的C槽
發現竟然沒有可以修改縮圖存放位置的設定,
後來才知道預設是在C槽,這樣只會把系統空間都吃光,
後來google一下其他人的分享,利用資料夾捷徑的方式,將資料夾設定到其他地方,
在命令提示字元下,輸入
mklink /j "C:\Users\administrator\AppData\Local\Google\Picasa2\" "D:\data\Picasa"
特別說明
1.adminstrator依登入的帳號而定,如果使用者帳號是jhon請輸入jhon
2.動作前,請先將C槽Picasa2資料夾下的資料全部移到新設定的目的地或者刪除
執行成功後會出現含有建立連結成功符號的訊息!
參考來自
解決Picasa 塞爆你的C槽
2014-04-09
MS SQL 使用sp_send_dbmail發送-HTML格式郵件
透過MS SQL的sp_send_dbmail可直接將查詢出的資料以HTML郵件格式發出
範例如下
收到郵件結果如下
參考自 MSDN-sp_send_dbmail
範例如下
--建立測試表格/資料 IF (select OBJECT_ID('tempdb..#Mail_Tmp')) IS NOT NULL DROP TABLE #Mail_Tmp CREATE TABLE #Mail_Tmp (AccNo VARCHAR(10), EMail VARCHAR(MAX)) INSERT INTO #Mail_Tmp VALUES ('dean','dean@gmail.com') INSERT INTO #Mail_Tmp VALUES ('phoebe','phoebe@gmail.com') --抓取資料 IF EXISTS (select * from #Mail_Tmp) BEGIN DECLARE @tableHTML NVARCHAR(MAX) ; SET @tableHTML = N'<H1>用戶郵件帳號明細</H1>' + N'<table border="1">' + N'<th>使用者</th>'+ N'<th>email</th>'+ N'</tr>' + CAST ( (select td=AccNo,'', td=EMail,'' from #Mail_Tmp FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) ) + N'</table>'+ N'此郵件由系統發出' EXEC msdb.dbo.sp_send_dbmail @profile_name='ERP_DB',--Database Mail設定檔名稱 @recipients='dean@gmail.com',--收件者 @copy_recipients='',--CC @subject='用戶郵件帳號明細',--主旨 @body=@tableHTML, @body_format=HTML--使用HTML格式 END
收到郵件結果如下
參考自 MSDN-sp_send_dbmail
2014-03-27
Delphi-抓取指定路徑檔案名稱
//****************************************************************************** //** 抓取指定路徑檔案名稱 _GetAllFiles--<自訂函數> //** //****************************************************************************** procedure _GetAllFiles(mask :String; isRecursiveSearch_ :Boolean; lst :TStrings); var sr :TSearchRec; tExt :String; tDir :String; begin tExt := ExtractFileName(mask); tDir := ExtractFilePath(mask); if tDir[Length(tDir)] <> '\' then tDir := tDir+'\'; if FindFirst(mask, faAnyFile, sr) = 0 then begin repeat lst.Add(Format('%s%s', [tDir, sr.Name])); until FindNext(sr) <> 0; SysUtils.FindClose(sr); end; if isRecursiveSearch_ then begin if FindFirst(tDir + '*.*', faDirectory, sr) = 0 then repeat if ((sr.Attr and faDirectory) = faDirectory) and (sr.name[1] <> '.') then _GetAllFiles(Format('%s%s\%s', [tDir, sr.Name, tExt]), true, lst); until FindNext(sr)<>0; SysUtils.FindClose(sr); end; end;
2014-03-17
[敗家]-海美迪 Q12-emmc版
印象中海美迪的電視盒都不便宜,所以沒有花太多時間去注意,
直到前一陣子看到01上在討論C/P直爆高的Q12,
研究一下發現系統整合的不錯,除了可以直接觀看線上節目,
讀取各種影音檔也沒有問題,重點是價格不貴,
淘寶官方店鋪賣的是279 RMB,換算下來台幣不到1500,
就這樣一不小心就請對岸的同事帶了2台回來用...XD
訂閱:
文章 (Atom)