<%
''dataaccess''
'' ' '
' ' ' '
' class dataaccess
'資料庫連線物件
private connection_
'資料庫命令物件
private command_
'執行資料庫查詢操作,返回斷開的記錄集物件
public function executereader(byval strconnstring,byval strcommandtext)
on error resume next
'開啟資料庫連線
call openconnection(strconnstring)
'設定command
call setcommand(strcommandtext)
dim objrs,arrcol,arrrow,i,intcol,objoutrs
set objrs=command_.execute()
set objoutrs=server.createobject("adodb.recordset")
objoutrs.open objrs
'返回斷開的記錄集
set executereader=objoutrs
if err.number<>0 then
err.clear()
response.write("資料庫讀取操作錯誤")
response.end()
end if
objrs.close()
set objrs=nothing
call closeconnection()
end function
'資料庫更新,刪除操作(儲存過程)
public function executenonquery(byval strconnstring,byval strcommandtext)
on error resume next
'開啟資料庫連線
call openconnection(strconnstring)
'設定command
call setcommand(strcommandtext)
dim intrecordsaffected
command_.execute intrecordsaffected, , adexecutenorecords
executenonquery=intrecordsaffected
if err.number<>0 then
err.clear()
response.write("資料庫更新操作錯誤")
response.end()
end if
call closeconnection()
end function
'執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略額外的列或行
public function executescalar(byval strconnstring,byval strcommandtext)
on error resume next
'開啟資料庫連線
call openconnection(strconnstring)
'設定command
call setcommand(strcommandtext)
dim objrs
set objrs=command_.execute()
if not objrs.eof then
executescalar=objrs(0)
end if
if err.number<>0 then
err.clear()
response.write("資料庫讀取單值操作錯誤")
response.end()
end if
objrs.close()
set objrs=nothing
call closeconnection()
end function
'取得指定引數名的引數值
public function getparametervalue(byval strparamname)
on error resume next
getparametervalue=command_.parameters(strparamname).value
if err.number<>0 then
err.clear()
getparametervalue=""
end if
end function
'清除引數
public function clearparameter()
dim i
for i=0 to command_.parameters.count - 1
command_.parameters.delete(0)
next
end function
'初始化資料庫連線物件
private sub openconnection(byval strconnstring)
on error resume next
if not isnull(connection_) then
set connection_=server.createobject("adodb.connection")
connection_.cursorlocation=aduseclient
connection_.open(strconnstring)
if err.number<>0 then
err.clear()
closeconnection(connection_)
response.write("資料庫連線錯誤")
response.end()
end if
end if
end sub
'關閉資料庫連線物件
private sub closeconnection()
if not connection_ is nothing then
connection_.close()
set connection_=nothing
end if
end sub
'初始化資料庫命令物件
private sub setcommand(byval strcommandtext)
command_.activeconnection=connection_
if command_.parameters.count>0 then
command_.commandtype=4
else
command_.commandtype=1
end if
command_.prepared=true
command_.commandtext=strcommandtext
end sub
'關閉資料庫命令物件
private sub closecommand()
if not command_ is nothing then
set command_=nothing
end if
end sub
'初始化類
private sub class_initialize()
on error resume next
set command_=server.createobject("adodb.command")
end sub
'銷毀類
private sub class_terminate()
call closecommand()
call closeconnection()
end sub
end class
%>
三層框架(原始版)
什麼是三層 所謂三層體系結構,是在客戶端與資料庫之間加入了乙個 中間層 也叫業務邏輯層。這裡所說的三層體系,不是指物理上的三層,不是簡單地放置三颱機 器就是三層體系結構,也不僅僅有b s應用才是三層體系結構,三層是指邏輯上的三層,即把這三個層放置到一台機器上。三層體系的應用程式將業務規則 資料 訪問...
原始的抽象
由於排版原因,完整版本請看這裡 原始的抽象 本來預想的寫作計畫總是不斷的被一些新的念頭所打斷,然而這卻是乙個極好的事,人只能在他人的觸動下才更容易產生靈感,這次觸動我得是 cs 我非常贊同 只是不知能否進一步討論 抽象 對於人是什麼 對於計算機是什麼 您可以就以圍棋來談 當然也可以就 nlp來說 我...
原始的抽象
由於排版原因,完整版本請看這裡 原始的抽象 本來預想的寫作計畫總是不斷的被一些新的念頭所打斷,然而這卻是乙個極好的事,人只能在他人的觸動下才更容易產生靈感,這次觸動我得是 cs 我非常贊同 只是不知能否進一步討論 抽象 對於人是什麼 對於計算機是什麼 您可以就以圍棋來談 當然也可以就 nlp來說 我...