ほとんどのASPアプリケーションは、データベースへのアクセスと操作なしでは実行できないため、データベース部品のアクセス操作を個別に抽象化し、それらを別のクラスにカプセル化する必要があります。使用された言語が継承をサポートする場合、そのようなクラスをカプセル化してから、データ操作レイヤーで継承することができます。以下は、アクセスデータベースアクセスのために書いたクラスです。アクセスのために最適化されました。ただし、十分なアプリケーションテストが不足しているため、不明なバグやアプリケーションの制限がまだある可能性があります。メインコードは次のとおりです。
<%
classoledbprivateidatapath
privateConnectionStringPrivateconn
privatecmd
PrivateParam
privaterspublicpropertyletdatapath(byvalvalue)
idatapath = value
iconnectionString = "provider = microsoft.jet.oledb.4.0; dataSource ="&server.mappath(idatapath)
EndPropertyPublicPropertygetDatapath()
datapath = idatapath
EndPropertyPublicPropertyletConnectionString(byValValue)
iconnectionString = value
EndPropertyPublicPropertyGetConnectionString()
ConnectionString = iconnectionString
EndPropertyPublicFunctionOpenconn()
ifconn.state = adstateClosedthen
conn.openconectionString
endif
setopenconn = conn
endFunctionPublicFunctionInsert(byvalsql、byvalvalues)
openconn()
rs.opensql、conn、3,3、adcmdtext
rs.addnew
ディミ、l
l = ubound(values)
fori = 1tol+1
rs(i)= values(i-1)
次
rs.update
挿入= rs(0)
EndFunctionPublicFunctionExecute(byvalsql)
openconn()
setexecute = conn.execute(sql)
EndFunctionPublicFunctionExecutesCalar(byvalsql)
Dimirs:setirs = execute(sql)
ifnotirs.boftthenexecutescalar = irs(0)
EndFunctionPublicFunctionExecutenOnquery(byvalsql)
openconn()
callconn.execute(sql、executenonquery)
EndFunctionPublicFunctionInsertsp(byvalsql、byvalparams)
openconn()
rs.opensql、conn、3,3、adcmdstoredproc
rs.addnew
ディミ、l
l = ubound(params)
fori = 1tol+1
rs(i)= params(i-1)
次
rs.update
insertsp = rs(0)
EndFunctionPublicFunctionExecutesp(byvalspname、byvalparams)
withcmd
set.activeconnection = openconn()
.commandtext = spname
.CommandType =&H0004