ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
1431
1431
EMPFEHLEN
-
Hallo,
ich habe folgenden Code(ausschnitt):
Code :1
oCmd.CommandText = "SELECT department, extensionAttribute8, givenName, distinguishedName, sn FROM 'LDAP://server/dc=firmenkürzel,dc=local' WHERE objectClass='user' AND (department = '"& Abteilung &"' or '"& (InStr(1, distinguishedName, Abteilung) > 0)&"' = 'Wahr') ORDER BY sn"
Die Variable Abteilung lege ich entsprechend vorher fest.
Soweit funktioniert es auch im gesamten, allerdings habe ich das Problem, dass das Script im Bereich '"& (InStr(1, distinguishedName, "OU-Name,") > 0)&"' = 'Wahr' nicht ganz das macht was es soll. Statt durch die Schleife bei den einzelnen Benutzern zu gucken, ob denn "OU-Name," in der OU vorkommt, nimmt es scheinbar irgendwie einen zufälligen Benutzer und nimmt es dann komplett.
Nehm ich das department = '"& Abteilung &"' or raus, dann zeigt er immer "Falsch" an und gibt keinerlei Einträge aus.
Dagegen mit diesem Teil gibt er das richtige aus, was raus kommen soll.
Wenn ich dann bei der Ausgabe obige Zeile (InStr....) einfüge, dann zeigt er auch richtig an, ob es "True" oder "False" ist, was er allerdings bereits eigentlich im SQL-Statement prüfen sollte...
Jemand eine Idee?
GrüßeGeändert von Slater345 (10.07.08 um 08:24 Uhr)
-
Hi
welche Datenbank?
Welche Werte befinden sich in der Spalte "OU-Name", dass Du den instr() verwenden musst?
Was ist Abteilung? In Bezug auf Dempartment wird der Wert aus einer Variablen gelesen, in der Funktion instr() nicht.liebe Grüße, die Luzie
-
Vom Prinzip her liest es die Daten direkt aus dem AD (über LDAP), kann allerdings SQL-Befehle nutzen (von daher wohl an SQL angelehnt).
In "OU-Name" bzw. nun "Abteilung" (also "OU-Name" = Abteilung) befindet sich das Kürzel der Abteilung (als Beispiel "IT"), ich benutze InStr, weil in der Variablen "distinguishedName" ist eine lange Zeichenkette enthalten, die den kompletten OU-Pfad des Nutzers angibt (z.B. CN=Benutzername,OU=Abteilungsname,OU=Bereichsname, .......) und ich will über InStr gucken, ob der Abteilungsname in dieser Zeichenkette vorhanden ist (und wenn dem so ist, soll er den Benutzer mit in die Übersicht packen).
Grüße
-
Hallo
ich würde das jetzt von der SQL mal so aufbauen (sofern nun Abteilung die Variable ist)
Code :1 2 3
oCmd.CommandText = "SELECT department, extensionAttribute8, givenName, distinguishedName, " & _ "sn FROM 'LDAP://server/dc=firmenkürzel,dc=local' WHERE objectClass='user' " & _ "AND (department = '"& Abteilung &"' or InStr(1, distinguishedName,'" & Abteilung & "') > 0) ORDER BY sn"
liebe Grüße, die Luzie
-
InStr nimmt er so scheinbar nicht (denke, weil es, glaube ich, ja eine ASP-Funktion ist und keine SQL), will das zumindest nicht ausführen (natürlich angepasst).
Wär also:Allerdings kommt da dann falsche Syntax als Fehler, bei dem & nach der 1,Code :1
'"& InStr(1, &"'distinguishedName'"&, Abteilung)&"' > 0)
Wenn ich Dich richtig verstanden habe, müsste "distinguishedName" wieder aus dem ASP-Teil raus, da es ja wieder zu SQL gehören müsste (wie bei "department").
Ich probier mal damit etwas rum.
GrüßeGeändert von Slater345 (14.07.08 um 13:34 Uhr)
-
Hallo
instr() ist natürlich keine Standard-SQL-Funktion. In mySQL funktioniert diese meines Wissens nicht. Aber Access z.B. kann diese innerhalb der SQL auch im Programm Access innerhalb des SQL-Statementsr problemlos umsetzen.
Aber wir sind ja hier im ASP Forum (Klassik) und instr() ist auch eine VB-Funktion.
Dein Scirptcode (der zuletzt gepostet) kann nicht stimmen, da distinguishedName ja ein Spaltenname ist. Dieser darf in der SQL-Syntax nicht als Variable ausgegeben werden. Auch schon aus dem Grunde nicht, das instr() als 2. Attribut die durchsuchte Spalte und als 3. Attribut den Suchbegriff fordert. http://www.devguru.com/technologies/vbscript/13934.aspliebe Grüße, die Luzie
-
Na ja, direkt Access Datenbanken nutzen wir an anderen Stellen, am meisten bzgl. solchen Scripten eben (my)SQL bzw. lassen es über das AD laufen (z.B. Login).
Ist es also nicht möglich direkt im WHERE-Bereich nach dem "String" (in "Abteilung") über InStr zu fragen?
Zumindest wenn ich es bei den Zeilen direkt bei den Namen ausgeben lasse, klappt es so, wie gedacht.
Und bzgl. Forum, das ganze geht ja (leider) meist schwankend über relationale Datenbanken und ASP (würd zwar gern ASP.net nutzen, allerdings läuft es bei uns irgendwie nicht, obwohl alles so eingestellt sein sollte und die Seiten zum testen direkt aus dem entsprechenden Codebook stammen und die ja richtig sein dürften).
Grüße
-
sorry,
instr() ist die funktionierende Funktion. Allerdings kenne ich ich in Bezug auf LDAP nicht aus.
Versuch es mit dem Operator like und Wildcards.
..were feld like '%" & variable & "%'liebe Grüße, die Luzie
-
Hm.. wenn ich es mit z.B.:
probiere, kommt folgender Fehler:Code :1
oCmd.CommandText = "SELECT department, extensionAttribute8, givenName, distinguishedName, sn FROM 'LDAP://server/dc=firmenkürzel,dc=local' WHERE objectClass='user' AND distinguishedName LIKE '%"& Abteilung &"%' ORDER BY sn
Code :1 2 3
Provider Fehler "80040e14' Der Befehl enthielt mindestens einen Fehler.
und in der entsprechenden Zeile steht:
GrüßeCode :1
Set oRecordSet = oCmd.Execute
-
liebe Grüße, die Luzie
-
Spontan sah ich den Fehler leider nicht, weiß aber, dass das Statement ohne
funktioniert. Hab auch schon verschiedene Variationen probiert.Code :1
AND distinguishedName LIKE '%"& Abteilung &"%'
Werd es aber morgen mal noch genauer unter die Lupe nehmen (weiß ja nicht, ob es sich mit LIKE vielleicht nicht verträgt bzw. auskommt hier, auch wenn wir es bei Datenbanken selbst direkt nutzen).
Grüße
Ähnliche Themen
-
SQL Abfrage Problem
Von pjaehne im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 16.10.09, 15:56 -
Problem mit WHERE Abfrage und %
Von Xandramat im Forum PHPAntworten: 7Letzter Beitrag: 30.04.09, 21:24 -
SQL-Abfrage - Problem
Von philipp p im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 10.06.08, 19:58 -
Problem mit DB Abfrage
Von newwarrior im Forum PHPAntworten: 1Letzter Beitrag: 11.07.05, 15:05 -
Problem bei JSP mit DB-Abfrage
Von ingo preuss im Forum JavaAntworten: 5Letzter Beitrag: 03.06.05, 11:34





Zitieren
Login





