Params till komponent via loop - fel ?

ASP

4 svar · 287 visningar · startad av CokeLight

Medlem sedan juni 2000504 inlägg
Trådstart#1

Hej allihopa,

Om jag anropar komponenten utan loop så här så fungerar det bra:

call DomainCOM.DeleteContainerObject(oDomain,"User", delSingleUser)
		set DomainCOM = Nothing

men om jag stoppar in den i en loop så blir det fel:

for i=1 to Request.Form("getUser").Count
	delMultipleUsers = trim(Request.Form("getUser")(i))
	'Response.Write delMultipleUsers & "<br>"
	call DomainCOM.DeleteContainerObject(oDomain,"User", delMultipleUsers)
next
set DomainCOM = Nothingnext

Jag testade att skriva ut delMultipleUsers med response write och fick korrekta värden.. kan man inte anropa komponenten på det här sättet eller..?

... efter att jag satte dit Trim gick det plötsligt lite bättre då jag fick Automation error (innan fick jag inga felmedelanden alls), och EN användare kunde raderas, men det meddelandet fick jag bara en enda gång oavsett vad jag provade..

(Värden som requestas fås från föregående sida).

Nån som har nån kul ide om varför ovanstående inte fungerar...? Om ni har någon helt annan lösning än den jag provat får ni gärna föreslå den :)

Jag förklarar gärna om något var oklart,

Hej då

Medlem sedan dec. 19998 577 inlägg
#2

Antar att detta är ett slarvfel vid inskrivningen här i forumet:

set DomainCOM = Nothingnext

Borde vara:

set DomainCOM = Nothing
next
Medlem sedan juni 2000504 inlägg
#3

Hej Vide,

Jo, det var ett slarvfel.. blev så när jag copy/paste från originalkoden.. :)

Jag har fortfarande inte lyckats lokalisera felet..

Funderade på om man alternativt kan skicka med en array som byggs upp med typ samma FOR-loop, och att man skickar med den till komponenten istället..

Finns fler metoder för att skicka dynamiskt antal parametrar till komponent.. behöver ju säkert inte alls bara vara mha en FOR-loop konstruktion...? :)

Medlem sedan dec. 19998 577 inlägg
#4

Det är lite svårt att veta när man inte sett komponenten på "insidan"...

Men i loopen så tar du bara bort en användare i taget iaf, så jag förstår inte varför din kan använda samma syntax som den första...

Medlem sedan juni 2000504 inlägg
#5

Här kommer koden:

Public Function DeleteContainerObject(ByVal ContainerName As String, ByVal ObjectClass As String, ByVal ObjectName As String) As Boolean
    
    Dim Container As IADsContainer
    Dim ADsPath As String
    ADsPath = "WinNT://" & ContainerName
    
    Set Container = GetObject(ADsPath)
    Call Container.Delete(ObjectClass, ObjectName)
    
    If Err = 0 Then
        DeleteContainerObject = True
    End If
    
    Set Container = Nothing
End Function

Första parametern är namnet på domänen du jobbar i, sen kommer typen du vill radera, och slutligen namnet på användaren...

Körs koden från VB måste man lägga till "Active DS Type Library", eller annars kan man bara köra från en ASP-sida..

(Ska iväg o spela bandy alldeles strax, men svarar annars gärna på fler frågor om det skulle behövas när jag kommer hem :) Skulle vara underbart om det gick o lösa !! :)

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)