啟用資料庫的讀取認可快照選項 (避免select lock)
ALTER DATABASE xxx SET READ_COMMITTED_SNAPSHOT ON
啟用資料庫的快照集隔離選項 (避免insert,update,delete lock)
ALTER DATABASE xxx SET ALLOW_SNAPSHOT_ISOLATION ON
進一步說明
啟用快照集隔離,可讀取交易啟動之前存在的資料,也就是前一個版本的資料,這會讓 insert 跟update 不至於 lock 造成 select blocking 問題,所以開啟此設定可以最大化降低 blocking,同時避免死結發生
使用 nolock 會讀取交易過程中的每次異動,但若交易取消,或最後認可的結果不是當時讀到的資料,則讀取的值就會是從未存在任一版本的 dirty data
2018年4月16日 星期一
2018年4月10日 星期二
利用 directive 動態設定 style
html
====
<div grid="-15"></div> /*設定增量為-15,因為下方要留空間塞其他物件*/
javascript
====
.directive('grid', function ($timeout) {
return {
link: function (scope, elem, attrs) {
var setHeight = function () { /*設定高度填滿剩餘空間*/
var h = $(window).height() - $(elem).offset().top - 10;
if (attrs.grid) h += parseFloat(attrs.grid); /*考慮增量*/
$(elem).height(h);
}
$(window).resize(function () { /*當視窗大小改變時再次設定高度*/
setHeight();
});
$timeout(function () { /*使用 timeout 避免初次計算bug*/
setHeight();
});
}
};
})
====
<div grid="-15"></div> /*設定增量為-15,因為下方要留空間塞其他物件*/
javascript
====
.directive('grid', function ($timeout) {
return {
link: function (scope, elem, attrs) {
var setHeight = function () { /*設定高度填滿剩餘空間*/
var h = $(window).height() - $(elem).offset().top - 10;
if (attrs.grid) h += parseFloat(attrs.grid); /*考慮增量*/
$(elem).height(h);
}
$(window).resize(function () { /*當視窗大小改變時再次設定高度*/
setHeight();
});
$timeout(function () { /*使用 timeout 避免初次計算bug*/
setHeight();
});
}
};
})
2018年4月9日 星期一
server side 刪除 cookie
var c = new HttpCookie("xxx");
c.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(c);
c.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(c);
2018年4月6日 星期五
使用 System.Linq.Dynamic 達成動態組合 linq 語法 (以 where 為例)
先使用 nuget 安裝 System.Linq.Dynamic
var name="YYY";
equal
var list=db.XXX.Where($"{name}==@0", 查詢值);
like
var list=db.XXX.Where($"{name}.Contains(@0)", 查詢值);
any
var list=db.XXX.Where($"{nameof(收款用途)}.Any({name}==@0)", 查詢值)
var name="YYY";
equal
var list=db.XXX.Where($"{name}==@0", 查詢值);
like
var list=db.XXX.Where($"{name}.Contains(@0)", 查詢值);
any
var list=db.XXX.Where($"{nameof(收款用途)}.Any({name}==@0)", 查詢值)
訂閱:
文章 (Atom)
input 連結 datalist 用程式控制彈出選項
範例: nextTick(() => document.querySelector('input').showPicker()); ※僅支援現代瀏覽器
-
1. 設定檔案下載儲存位置為 C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache 2. 勾選"下載每個檔案前詢問儲存位置" 3. 針對不要下載的檔案類型於第一...
-
自動設定欄寬 sheet.Cells.AutoFitColumns(3, 20); // 必須設定 min 跟 max 才會正常作用 凍結欄位 sheet.View.FreezePanes(4, 4); 標題列 ws.PrinterSettings.RepeatRo...
-
使用 FreeSpire.XLS ... ep.Save(); using (var workbook = new Workbook()) using (var memStream = new MemoryStream()) { workbook.LoadFromSt...