一直在想怎麼樣才能讓dbhelper更簡單,更靈活,更僵化。終於我發布了第乙個開源版本的dbhelper.此helper將使用system.data.dbhelper作為命名空間。採用內部驅動與內容session的方式來進行管理。而作為使用者,你只需要作兩件事情。1、註冊乙個驅動;2、繼承dal建立自己的資料處理層。dbhelper在進行事務操作時需要使用lock來開啟事務;unlock提交事務。當出錯時自動進行事務回滾(獲立事務的dal除外)。多個dal可以通過group()方法將事務進行統一(即使驅動不同)。若存在多層巢狀關係,且每個dal都有lock,那麼事務以最外層的為準。
呼叫方法很簡單
1、註冊驅動
dbservice.instance.registdriver("sql", config.sql, typeof
(sqlhelper));
dbservice.instance.registdriver(
"oracle
", config.oracle, typeof(msoraclehelper));
2、普通查詢
publicdatatable getsource(datetime time)
'", time.tostring("
yyyy-mm-dd
"));
commandtext =sql.tostring();
return
getdatatable();
}
3、引數化提交
publicbool
synccardpress(datatable source,datetime time)
'",d);
executenonquery();
commandtext = "
insert into tb_roll_record values(:userid,:machine,to_date(:presstime,'yyyy-mm-dd hh24:mi:ss'),sysdate)";
var userid = addparameter("
userid");
var machine = addparameter("
machine");
var presstime = addparameter("
presstime");
foreach (datarow row in
source.rows)
}unlock();
return
success;
}
4、使用儲存過程
publicvoid
calc(datetime time)
5、說明
發布版本已經去掉對commantext的直接賦值方法,改為prepare(.....)來進行
好了,祝大家使用愉快。
Z之後是什麼?(續)(原創)
z 之後是什麼?續 上次試驗了乙個單磁碟的,下午突然想想多磁碟數多於 24 會不會對已有系統造成影響呢?於是找了乙個安裝好的虛擬系統 xp sp2 然後再加裝一塊 2gb的 ide硬碟,這塊硬碟的分割槽數為 c z,還留有部分空白。為什麼不到 z 因為用 pq分的時候,到 z時還正常,再加乙個就立即...
DV Arbiter驗證方案分享(續)
前言 前回分享了arbiter驗證的基本思想 link 下面做乙個推廣。並且提供一種使用generate來做assert和cover property的方法。一 round robin arbitor的驗證。對於乙個n輸入的round robin arbitor,需要用n個counter去統計回ac...
分享GoDaddy取消Paypal自動續費方法
如果你是新手準備用godaddy的產品或者已經在使用,如果你將用paypal付款那需要注意關於這篇godaddy取消paypal自動續費方法博文。因為在你第一次使用paypal支付款時候,你會與godaddy達成乙個協議,以後年份將會自動從您的paypal賬戶扣費續費你的網域名稱或者主 機產品。如果...