webForumDet fria alternativet

Nulltester....

4 svar · 370 visningar · startad av Ciliax

CiliaxMedlem sedan jan. 2004163 inlägg
#1

Halloj på er alla....

Jag har ett litet bekymmer. Jag har ett activedirectory object som jag skapar på följande sätt...

Set personObject = GetObject("LDAP://sehaln050/"&person)

Det är inga konstigheter med detta.... sen har jag 5 attribut som jag vill ta ut från detta AD objekt. Problemet uppstår när något attribut inte finnes i AD. I detta fall är objektet ett personobjekt och jag skall ta ut exempelvis förnamn och om detta inte finnes så får jag följande felmeddelande:
Active Directory : The directory property cannot be found in the cache.

Så jag har försökt testat om det är ett nullvärde som man får ut, men detta verkar inte gå heller.... utan man får samma fel då oxå... Är det nån som har en smidig lösning så vore jag tacksam!

Bifogar lite kod på det aktuella avsnittet...


Set personObject = GetObject("LDAP://sehaln050/"&person)
							
				SqlStr = "INSERT INTO Behörigheter (Mappnamn,Anstnr,Förnamn,Efternamn,Behörighet) VALUES "
				
								
				If IsNull(Lm.Name) Then
					SqlStr = SqlStr + "('Okänt mappnamn',"
				else
					SqlStr = SqlStr + "('"&Lm.Name&"',"
				End If
				
				If IsNull(personObject.Name) Then
					SqlStr = SqlStr + "'okänt användarnamn',"
				else
					SqlStr = SqlStr + "'"&personObject.Name&"',"
				End If
				
				If IsNull(personObject.FirstName) Then
					SqlStr = SqlStr + "'Okänt förnamn',"
				else 
					SqlStr = SqlStr + "'"&personObject.FirstName&"',"
				End If
				
				If IsNull(personObject.LastName) Then
					SqlStr = SqlStr + "'Okänt Efternamn',"
				else
					SqlStr = SqlStr + "'"&personObject.LastName&"',"
				End If
				
				SqlStr = SqlStr & "'"&Rights(MappStr)&"')" 
				
				wscript.Echo SqlStr
				
								
						SqlQuestion(SqlStr)
MacceMedlem sedan apr. 2001398 inlägg
#2

Går det inte med...

If Len(Lm.Name)<1 Then
  SqlStr = SqlStr + "('Okänt mappnamn',"
else
  SqlStr = SqlStr + "('"&Lm.Name&"',"
End If
CiliaxMedlem sedan jan. 2004163 inlägg
#3

Nej....
problemet är att när jag gör själva anropet i AD för att kolla namnet så verkar det bli problem....

If IsNull(personObject.Name) Then

Här sker en förfrågan till AD om personobjektets namn.... förfrågan måste ju göras för att man ska veta om det finnes ett namn eller inte.... Men det smäller då..... Snälla nån som har nått förslag skulle mottagas med stor tacksamhet.

Hoppas jag är tydlig nog annars förtydligar jag gärna..

MVH Ciliax

@ndersMedlem sedan juni 200026 914 inlägg
#4

Det finns säkerligen något bättre sätt, men man kan alltid använda on error resume next:

on error resume next

strPersonName = personObject.Name
if Err.Number <> 0 then
     ' Det blev fel, fanns alltså inte.
     Err.Clear
End if

strPersonDescription = personObject.Description
if Err.Number <> 0 then
     ' Det blev fel, fanns alltså inte.
     Err.Clear
End if

' . . . . . 

on error goto 0

Mvh

CiliaxMedlem sedan jan. 2004163 inlägg
#5

Tackar @nders... det löste mina problem... Om nån vet något bättre sätt så vore det itnressant å höra om det.... Annars så fungerade detta utmärkt som sagt.....

Tackar!

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb