Jag är inte ens säker på att man kan göra så här så kom gärna med synpunkter. Skippa CloseRecordSet() och CloseConnection(). Det är fullständigt onödiga. Förutom att det förutsätter global variabel.Funktion i funktion med ADODB.Connection
Jag har föjande funktioner:
<code>
'//Create DB Connection
Function OpenConnection()
Dim objConn
Set objconn = Server.CreateObject("ADODB.Connection")
objconn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\SportClub\db\db.mdb"
Set OpenConnection = objconn
End Function
'//Create RecordSet
Function OpenRecordSet(SQL, objConn, CursorType, LockType)
Dim objRs
Set objRs = Server.CreateObject("ADODB.Recordset")
objRs.Open SQL, objConn, CursorType, LockType
Set OpenRecordSet = objRs
End Function
'//Close RecordSet
Function CloseRecordSet()
objRs.Close
Set objRs = Nothing
End Function
'//Close DB Connection
Function CloseConnection()
objConn.Close
Set objConn = Nothing
End Function
</code>
Som jag sedan försöker nyttja i en 5:e funktion:
<code>
'//Get Season ID
Function GetSeasonID()
Set objConn = OpenConnection()
Set objRs = OpenRecordSet("SELECT TOP 1 Tbl_Season.ID FROM Tbl_Season WHERE (((Tbl_Season.Deleted)=False)) ORDER BY Tbl_Season.Name DESC;",objConn,3,1)
If Not objRs.EOF Then
intSeasonID = objRs(0)
End If
CloseRecordSet()
CloseConnection()
GetSeasonID = intSeasonID
End Function
</code>
Får följande felmeddelande:
<code>
HTTP 500.100 - Internal Server Error - ASP error
Internet Information Services
Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: 'objConn'
/ibk/includes/common.asp, line 27
</code>
Rad 27 är första raden i funktionen "CloseConnection()".
Tacksam för hjälp.Sv: Funktion i funktion med ADODB.Connection
<code>
GetSeasonID()
Dim objConn
Dim objRs
Set objConn = OpenConnection()
Set objRs = OpenRecordSet("SELECT TOP 1 Tbl_Season.ID" & vbCrLf & _
"FROM Tbl_Season" & vbCrLf & _
"WHERE NOT Tbl_Season.Deleted" & vbCrLf & _
"ORDER BY Tbl_Season.Name DESC;",objConn, 3, 1)
If Not objRs.EOF Then
GetSeasonID = objRs(0)
End If
objRs.Close
objRs.Close
End Function
</code>
Set X = Nothing i detta fallet är hellt onödigt. Om du inte får betalt per rader kod.