I am experimenting a bit with COM+.. Is this basic example of mine
a "proper" implementation ? Feel free to critisize:
Implements ObjectControl
Private objContext As ObjectContext
Private Const strAppName = "ComTest"
Option Explicit
Private Sub ObjectControl_Activate()
Set objContext = GetObjectContext()
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = False
End Function
Private Sub ObjectControl_Deactivate()
Set objContext = Nothing
End Sub
'Get absolutePath of System
Public Function getAbsolutePath() As String
Dim strPathTranslated, strApplicationPath As String
Dim objRequest As Request
Set objRequest = objContext("Request")
strPathTranslated = objRequest.ServerVariables("PATH_TRANSLATED")
strApplicationPath = Left(strPathTranslated, InStrRev
(strPathTranslated, strAppName, -1, 1) + Len(strAppName))
getAbsolutePath = strApplicationPath
Set objRequest = Nothing
End Function
'Create as Database Connection
Public Function ConnectToDB(ByVal ConnectionString As String) As
ADODB.Connection
Set ConnectToDB = CreateObject("ADODB.Connection")
ConnectToDB.Open ConnectionString
End Function
'Create a recordset
Function CreateRS(ByVal source As String, ByRef objConn As Variant, ByVal
cursortype As Integer, ByVal locktype As Integer, ByVal options As
Integer) As ADODB.Recordset
Set CreateRS = CreateObject("ADODB.Recordset")
CreateRS.Open source, objConn, cursortype, locktype, options
End Function
Function strBaseString() As String
Dim strBaseConn As String
strBaseConn = "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)};" & _
"UID=admin;PWD=opensesame;" & _
"DBQ=" & getAbsolutePath() & "Data.mdb"
strBaseString = strBaseConn
End Function
Usage:
<%
Dim objTest, objConn, objRS
Set objTest = Server.CreateObject("COM.Connection")
Response.Write objTest.strBaseString() & "<br>"
Response.Write objTest.getAbsolutePath() & "<br>"
Set objConn = objTest.ConnectToDB(objTest.strBaseString())
Set objRS = objTest.CreateRS("SELECT * FROM Books;",objConn,0 ,1 ,1)
Do While Not objRS.EOF
Response.Write objRS("Title") & " " & objRS("ISBN") & "<BR>"
objRS.MoveNext
Loop
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
Set objTest = Nothing
%>