Hej, Skriv istället; Hej du och tack för svaret! Du kör ju inte "riktig" asp utan Sun ONE ASP. Kan ju var det som strular. Ja, jag vet inte hur många gånger jag själv har sagt det till folk som haft problem på det webbhotellet men nu har man själv fått en kund som ligger där, ironiskt :)Saknar objekt vid stängning av MySql-databas
Är det någon som kan förklara för mig varför följande felmeddelande dyker upp då jag vill stänga en databaskoppling?
Felmeddelande:
Error Type:
Sun ONE ASP VBScript runtime (0x800A01A8)
Object required: 'Conn'
koppling.asp, line 13
<b>koppling.asp</b><%
Option Explicit
Dim Conn, ConnenctionString, rs, Cmd
Sub dbOpen()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString="DRIVER={MySQL};SERVER=localhost;DATABASE=xxx;UID=xxx;PWD=xxx;"
Conn.Open
End Sub
Sub dbClose()
Conn.Close : Set Conn = Nothing 'Rad 13
End Sub
%>
<b>Sidan där Subarna anropas:</b><%
Dim strSQL
Call dbOpen()
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = Conn
strSQL = "SELECT-fråga"
Cmd.CommandText = strSQL
Set rs = Cmd.Execute
Do Until rs.EOF
Response.Write rs(0)&" "&rs(1)
rs.MoveNext
Loop
rs.Close : Set rs = Nothing
Call dbClose()
%>
Detta är bara en testsida så den är verkligen inte avancerad men jag kan verkligen inte se/förstå varför den vill ha ett objekt (Conn) när dbClose() anropas.
Kommenterar jag bort Call dbClose() blir det inget felmeddelande :/
Och koppling.asp är inkluderad.
Och där blir ingen skillnad om jag lägger kopplingen/stängningen direkt i koden och inte i Subarna.
Sv: Saknar objekt vid stängning av MySql-databas
<b>koppling.asp</b><%
Option Explicit
Function dbOpen()
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL};SERVER=localhost;DATABASE=xxx;UID=xxx;PWD=xxx;"
Set dbOpen = Conn
End Function
%>
<b>Sidan där Subarna anropas:</b><%
Sub WriteResult(rs, Field1, Field2)
Do Until rs.EOF
Response.Write Field1 & " "& Field2
rs.MoveNext
Loop
End Sub
Dim rs
Dim Cmd
Dim Conn
Set Conn = dbOpen()
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = Conn
Cmd.CommandText = "SELECT-fråga"
Set rs = Cmd.Execute()
WriteResult rs, rs(0), rs(1)
rs.Close
Conn.Close
%>
I detta fallet är det helt onödigt att sätta variablena till Nothing då sidan är slut.
Sv:Saknar objekt vid stängning av MySql-databas
Tyvärr så fungerade inte det heller!
Fick samma felmeddelande:
<b>Object required: 'Conn'</b>
Och den pekar på:
<b>Conn.Close</b>
Jag har testat dem flesta varianterna men icke att servern godkänner det.
Man kan ju knappast säga att det är något avancerat man vill göra på deras server...Sv: Saknar objekt vid stängning av MySql-databas
Sv:Saknar objekt vid stängning av MySql-databas
Jag har nu skickat ett mail till deras support så får vi se vad dem säger.
Återkommer med lite info om det senare.
Tack så länge!
Micke
<b>Uppdatering:
Så här blev svaret ifrån One:s support:</b>
Hejsan!
Tyvärr har jag ingen bra förklaring till
varför Conn.Close ställer till problem men
ni kan kommentera bort den raden. Istället
kan ni skriva Set Conn=Nothing vilket ska
ge samma effekt och som fungerar.
Med vänlig hälsning / Best Regards
SUPPORTEN
----------------------------------
One.com
Men att det ska ge samma effekt har jag svårt att kunna förstå, vet inte riktigt hur dem tänkt sig det...
Det blir nog att försöka få kunden att byta webbhotell.