webForumDet fria alternativet

Kolla om objekt = Nothing

ASP

16 svar · 716 visningar · startad av pb81

Medlem sedan okt. 200688 inlägg
Frågan#1

Hur kollar jag om ett object verkligen har skapats?
Har haft problem att det inte skapas ibland så jag tänkte lägga in så att den prova att öppna objektet o köra det 3ggr annars felmeddelande

Medlem sedan juni 200032 967 inlägg
#2

Prova TypeName() eller helt enkelt:

if obj is nothing then

Det är känns dock som fel sätt att lösa problemet på... Vad är det för objekt? Hur ser koden ut? Hur märker du att objektet inte är skapat?

Medlem sedan okt. 200688 inlägg
#3

Typ såhär då?

Set OBJECT = Server.CreateObject("OBJECT")
If OBJECT is Nothing Then
 Set OBJECT = Server.CreateObject("OBJECT")
End If
IF OBJECT is Nothing Then
 Set OBJECT = Server.CreateObject("OBJECT")
End If

Bla bla bla

Set OBJECT = Nothing
Medlem sedan okt. 200688 inlägg
#4

När vi ändå är igång med object..
Vilket är bäst att köra

Set OBJECT = Server.CreateObject("OBJECT")
OBJECT.Bla1
OBJECT.Bla2
OBJECT.Bla3
Set OBJECT = Nothing

Eller

Set OBJECT = Server.CreateObject("OBJECT")
With OBJECT
.Bla1
.Bla2
.Bla3
End With
Set OBJECT = Nothing
Medlem sedan juni 20019 519 inlägg
#5

spelar direkt inte någon roll. Använd det du känner dig mest hemma ;)

Kan tänka mig att det är någon prestanda ökning kanske med with Object... men har inte detta på papper som styrker mig ;)

Medlem sedan juni 20008 205 inlägg
#6

I det här triviala fallet finns det ingen anledning till varför with skulle ge en prestandaökning, det är bara en syntaktisk genväg/omväg som ger samma resultat som om man inte använder det.

Medlem sedan okt. 200688 inlägg
#7

Ändrade iaf så den kollar 2ggr om objektet skapas.
Lär ju märka om det funkar bättre med tiden.
La även till With nu, funkar kanon.. Som sagt prestandan blir väl inte bättre men mindre kod iaf ;)

Medlem sedan juni 200032 967 inlägg
#8

Det var inget alternativ att försöka lösa själva problemet istället? :)

Medlem sedan okt. 200688 inlägg
#9

Var inte säker på hur man kollade Nothing.. sorry

Medlem sedan juni 200032 967 inlägg
#10

Var inte säker på hur man kollade Nothing.. sorry

Jag anser inte att det är det som är problemet, men jag vet ju inget. :)

Medlem sedan okt. 200688 inlägg
#11

Vad är det som bekymmra dig då? Fick ju svaret på det jag ville veta! ;)
Och det gick fort.. Kan ju inte bli bättre.

Medlem sedan juni 200032 967 inlägg
#12

Jag anser att det riktiga problemet består i att objektet inte alltid skapas. Så istället för att gå runt det med att skapa objektet några fler gånger tills det är skapat, borde man ta reda på varför objektet inte skapats från början, och lösa det problemet.

Som en sån här lösning när man har problem med varmvattnet.

Som sagt, jag vet ingenting, eftersom du inte visat något av din kod, eller berättat något om vad det är för sorts objekt, men jag ville bara öppna hjärnan för tankar på att söka problemlösning där problemet uppstår, istället för att försöka bota symptomen.

mvh

Medlem sedan okt. 200688 inlägg
#13

Felet ligger nog inte att den inte skapar objectet.. Jag tror mer på att det är objectet i sig som har felaktigheterna.. Tänkte prova så här till och börja med
Får följande felmeddelande

Method '~' of object '~' failed
Kod saknas

Och raden hänvisar direkt till objectet

Medlem sedan juni 200032 967 inlägg
#14

Vad är det för objekt då? Och vad menar du med "kod saknas"?

Medlem sedan feb. 200112 078 inlägg
#15

pb81 skrev:

Felet ligger nog inte att den inte skapar objectet.. Jag tror mer på att det är objectet i sig som har felaktigheterna.. Tänkte prova så här till och börja med
Får följande felmeddelande

Method '~' of object '~' failed
Kod saknas

Och raden hänvisar direkt till objectet

Vad är det för server/maskin du kör koden på? Det kan inträffa ibland, i COM, det där.

Och som @nders sa; vad är det för objekt/komponent?

Medlem sedan maj 200010 687 inlägg
#16

pb81 skrev:

När vi ändå är igång med object..
Vilket är bäst att köra

Set OBJECT = Server.CreateObject("OBJECT")
OBJECT.Bla1
OBJECT.Bla2
OBJECT.Bla3
Set OBJECT = Nothing

Eller

Set OBJECT = Server.CreateObject("OBJECT")
With OBJECT
.Bla1
.Bla2
.Bla3
End With
Set OBJECT = Nothing

Kan ju förenkla det ännu mer...

With Server.CreateObject("OBJECT")
	.Bla1
	.Bla2
	.Bla3
End With
Medlem sedan feb. 200112 078 inlägg
#17

Jag avmarkerade trådskaparens svar, där denne ansåg att lösningen på problemet var att försöka öppna objektet tre gånger. Detta är inte en lösning som jag ser som slutgiltig och inget vi heller vill rekommendera andra som läser denna tråd.

Jag upprepar min fråga;

Jag skrev:

Vad är det för server/maskin du kör koden på? Det kan inträffa ibland, i COM, det där.

Och som @nders sa; vad är det för objekt/komponent?

Är du på ett webbhotell?

MVH
OveRRidE, moderator

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)