Hallå!
Jag håller på att skapa komponenter mha ASP, och har stött på ett problem...
Jag vill använda ASP's objekt Response och Request. Att använda Response var inga som helst problem, men när jag sedan använder samma tillvägagångssätt för att använda Request får jag felmeddelandet "Invalid use of property".
Så här gör jag:
Option Explicit
Dim cont As ObjectContext
Implement ObjectControl
Private Sub ObjectControl_Activate()
Set cont = GetObjectContext()
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = False
End Function
Private Sub ObjectControl_Deactivate()
Set cont = Nothing
End Sub
Public Sub minSubb()
Dim resp As Response
resp = cont("Response") 'Funkar!
'-------
Dim requ As Request
requ = cont("Request") 'Funkar inte...
End Sub
Någon som vet vad jag gör för fel?
------------------
---
/* LilleSkutt */
fredrikMedlem sedan dec. 19991 072 inlägg hmmm...är du säker på att ditt "resp" objekt verkligen fungerar?
jag tror nämligen att du måste instansiera objektet med "set" innan du kan använda det.
Det borde vara därför du får felet "Invalid use of property" eftersom du försöker tilldela en variabel ett objekt som antagligen ligger som en "property procedure set" och därför kräver "set".
Prova att istället sätta:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
set resp = cont("Response")
set requ = cont("Request")
Så ska det fungera.
Sen behöver du inte implementera "ObjectControl" utan kan sätta din "objectcontext" till "GetObjectContet" i "Class_initialize" händelsen, samt radera instansen i "Class_terminate".
------------------
Fredrik Klarqvist
f.klarqvist@spray.se
http://server.webwerkstaden.se/fredde/
Tack för ditt svar! Dock har det inte löst sig...
Jag hängde inte riktigt med i det där med GetObjectContent, så jag har nu gjort så här:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Option Explicit
Private cont As ObjectContext
Implements ObjectControl
Private resp As Response
Private req As Request
Public Sub Class_Initialize()
Set resp = cont("Response")
Set req = cont("Request")
End Sub
Public Sub minSubb()
Dim str As String
str = req.QueryString("minQueryString")
resp.Write str
End Sub
Private Sub ObjectControl_Activate()
Set cont = GetObjectContext()
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = False
End Function
Private Sub ObjectControl_Deactivate()
Set cont = Nothing
End Sub
Funkar inte... :(
------------------
---
/* LilleSkutt */
Kan lägga till att jag får felmeddelandet
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Object variable or With block variable not set
när jag försöker köra koden:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
<%
set tmp = server.createobject("Temp.Test")
tmp.minSubb
set tmp = nothing
%>
------------------
---
/* LilleSkutt */
My god, nu har det uppstått flera problem :l
Istället för att skriva ut saker och hämta in saker med Response och Request har jag nu blivit tvungen att skicka strängar fram och tillbaka för att få det att gå ihop. Om någon har en lösning på mitt ovanstående problem vore jag den personen evigt tacksam...
Nytt problem:
Varför kan jag inte skapa arrayer? Så här gör jag:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Dim arrMonths As String
arrMonths = Array("Jan", "Feb", "Mar", "Apr", osv...)
Men jag får ett felmeddelande på det! Vad gör jag fel?
------------------
---
/* LilleSkutt */
[Redigerat av LilleSkutt den 03 okt 2001]
@ndersMedlem sedan juni 200032 969 inlägg Se här:
http://program.webforum.nu/wf/Forum25/HTML/000119.html
Mvh,
------------------
All your base are belong to me.
Jo, tack :)
Gjorde en enkelt sökning på nätet och hittade precis... Kanske skulle ha gjort det innan jag gjorde inlägget. :r
Du har ingen aning om vad som kan vara felet i mitt första problem? :q
Tack ivf, @nders!
------------------
---
/* LilleSkutt */
fredrikMedlem sedan dec. 19991 072 inlägg Jag kan bidra med att den kod jag använder är följande:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Private objCxt As ObjectContext
Private Response As ASPTypeLibrary.Response
Private request As ASPTypeLibrary.request
Private Server As ASPTypeLibrary.Server
Private Sub Class_Initialize()
Set objCxt = GetObjectContext()
Set Response = objCxt.Item("Response")
Set request = objCxt.Item("Request")
Set Server = objCxt.Item("Server")
End Sub
Private Sub Class_Terminate()
Set objCxt = Nothing
Set Response = Nothing
Set request = Nothing
Set Server = Nothing
End Sub
Sen är det bara att andvända "response", "request" och "server" som om det vore från ASP.
Du behöver alltså inte implementera objekts-kontrollen om du inte ska köra komponenten med transaktions-hantering i MTS/COM+.
------------------
Fredrik Klarqvist
f.klarqvist@spray.se
http://server.webwerkstaden.se/fredde/
Ok, tack. Ska prova nästan direkt :)
Jag har gjort sådär, förut, men jag kanske gjorde nåt litet fel.
Återkommer om det inte funkar!
------------------
---
/* LilleSkutt */
Funkade perfa, tack ska du ha!
------------------
---
/* LilleSkutt */