webForumDet fria alternativet

Undantagsfel med Class

ASP

2 svar · 219 visningar · startad av LR^evil.sid

Medlem sedan maj 2002560 inlägg
Frågan#1

Nu har jag börjat prova mig fram med classer : )

Jag följde Vides exempel på webeye.nu och började modifiera så smått. Men jag får felmeddelanden typ varannan gång jag uppdaterar sidan. Vad kan det vara för fel?

clsSetCon.asp

<%
	Class SetCon
		Dim GetStrCon
		Dim GetStrSQL
		Dim ODB

		Public Property Let LetConnection(ConString)
			GetStrCon = ConString
		End Property
		Public Property Get GetConnection()
			GetConnection = GetStrCon
		End Property

		Public Property Let LetSQL(SQLString)
			GetStrSQL = SQLString
		End Property
		Public Property Get GetSQL()
			GetSQL = GetStrSQL
		End Property

		Public Sub InitConnection()
			Set ODB = Server.CreateObject("ADODB.Connection")
			ODB.Open(GetConnection)
		End Sub

		Public Sub FinalizeConnection()
			ODB.Close
			Set ODB = Nothing
		End Sub

		Private Function GetDataBase()
			Set GetDataBase = ODB
		End Function

		Public Function GetDbData()
			Dim ORS
[b]line « 37 »[/b]	[red]Set ORS = GetDataBase.Execute(GetSQL)[/red]

			If Not ORS.EOF Then
				GetDbData = ORS.Fields("usr")
			End If
		End Function
	End Class
%>

test.asp

<%
	Option Explicit
	Dim cSetCon
	Response.Buffer = True

	Set cSetCon = New SetCon
	With cSetCon
		.LetConnection = "Driver={MySql};server=localhost;database=;uid=;pwd=;option=16387;"
		.LetSQL = "select * from members"
		.InitConnection()
		Response.Write .GetDbData() & "<br>"
		.FinalizeConnection()
	End With
	Set cSetCon = Nothing
%>
<!-- #Include Virtual = '/suck/classes/clsSetCon.asp' -->

Felmeddelande:

Körningsfel i Microsoft VBScript ( 0x800A01FB ) 
Ett undantag uppstod: 'GetDataBase.Execute' 	
file: /suck/classes/clsSetCon.asp
line: « 37 »
Medlem sedan dec. 19998 577 inlägg
#2

Borde inte den raden se ut såhär:
Set ORS = ODB.Execute(GetSQL)

[R]Vänta nu, jag är ju ute och cyklar, men vad händer om du gör som min kod? Fungerar det då?

Medlem sedan maj 2002560 inlägg
#3

U tell me...

'Funktion för att återge connectionobjektet.
  'Notera att den är private, och kan bara anropas ifrån klassen.
[b]  private function getDb()
    set getDb = oDb
  end function[/b]

  'Funktion för att återge det användarnamn som har id = intCurrentUserId.
  public function getUserName()
    dim strSQL
    dim oRs

    strSQL = "select UserName from tblUsers where UserId = " & intCurrentUserId
    set oRs = [b]getDb[/b].execute( strSQL )

Men det spelar ingen roll ändå. Får samma felmeddelande:

Ett undantag uppstod: 'ODB.Execute'

[R1]öumm... bara kopiera den rakt av?

[R2]Hmm... alla sidor på min server ger fel typ varannan gång. Alla som använder sig av .execute iaf. Vad tror ni är fel då?

Kanske starta om IIS? Räcker sådant?

251 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)