OK. Men isåf finns det väl inget hinder för att du lägger:
Public ctx As ASPTypeLibrary.ScriptingContext
i basmodulen så att den blir tillgänglig överallt?
28 svar · 551 visningar · startad av OveRRidE · sida 2 av 2
Jag får för mitt liv inte denna kod att fungera. Fråga mig inte varför. Jag har inkluderat referenser till ASP context library i projektet. Public Function GetApplicationVar(strVariableName As String) As Variant Dim objApplication As Object [red]Dim ctxObjectContext As ObjectContext '<< felkod[/red] Dim intError As Integer On Error Resume Next Set ctxObjectConte
Läs frågan i sin helhet →OK. Men isåf finns det väl inget hinder för att du lägger:
Public ctx As ASPTypeLibrary.ScriptingContext
i basmodulen så att den blir tillgänglig överallt?
Helt otroligt! Det funkar inte ändå..
I modulen:
Public ctx As ASPTypeLibrary.ScriptingContext
Public Sub getApplicationVar()
ctx.Response.Write ("strConn")
End Sub
Samma felmeddelande på andra raden i sub:en.
Men getApplicationVar ligger ju i basmodulen och då kan bara anropet till den komma från klassmodulen. Och isåf kan felmeddelandet bara betyda att du anropar den innan ctx tilldelats? I Class_Initialize, rent av?
Varför skulle anropet bara kunna komma från klassmodulen? Jag anropar andra metoder inom samma bas-modul utan problem.
Jag har ingen Class_Initialize i bas-modulen ens.
Jag anropar getApplicationVar i en annan metod, som i sin tur anropas från klassmodulen.
Varför skulle anropet bara kunna komma från klassmodulen?
Jag menade att anropet på något sätt måste ha initialiserats i klassmodulen (direkt eller indirekt) eftersom det inte kan komma utifrån (från extern kod).
Men anyway: Du har inte möjligtvis ctx dubbeldeklarerat? Som private i klassmodulen och public i basmodulen, eller lokalt inne i en metod? Annars har jag ingen bra förklaring ..
/red: Jag är ganska säker på att jag har rätt om dubbeldeklareringen.
Den är inte dubbeldeklarerad, det har jag kollat ett par gånger vid det här laget.
Alltså, en metod i klassmodulen (m1) anropar en metod i modulen (m2) som i sin tur anropar ytterligare en metod i m2 och sedan ytterligare en i m2. Så på det sättet härstammar den ju ifrån klassmodulen, men den anropas ju aldrig direkt därifrån. Dessutom borde väl inte detta vara problemet.
Jag skall gå hem nu dock, så jag återkommer på lördag igen.
Tack sålänge!
Som sagt om ctx bara är deklarerad som Public i basmodulen och tilldelas i OnStartPage i klassmodulen så ska det funka. Det är nåt enkelt du har förbisett ..
Bara så att vi inte pratar förbi varandra. Så här uppfattar jag att du menar:
Hrm. Nu har jag inte projektet framför mig, men det kan vara så att jag deklarerade ctx i klassmodulen och inte i basmodulen. Däremot är den publik, det vet jag.
Jag skall kolla det och återkomma. Tack igen! :)