Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dialekt SQL pochodzący z języka Structured Query Language używa wyrażeń czytelnych dla człowieka do definiowania instrukcji zapytania. Użyj instrukcji zapytania SQL z następującymi interfejsami wyszukiwania ADSI:
- Interfejsy ActiveX Data Object (ADO), które są interfejsami automatyzacji korzystającymi z OLE DB.
- OLE DB , który jest zestawem interfejsów C/C++ do wykonywania zapytań dotyczących baz danych.
Instrukcje SQL wymagają następującej składni.
SELECT [ALL] * | select-list FROM 'ADsPath' [WHERE search-condition] [ORDER BY sort-list]
W poniższej tabeli wymieniono słowa kluczowe instrukcji zapytania SQL.
| Słowo kluczowe | Opis |
|---|---|
| WYBRAĆ | Określa rozdzielaną przecinkami listę atrybutów do pobrania dla każdego obiektu. Jeśli określisz *, zapytanie pobiera tylko ścieżkę ADsPath każdego obiektu. |
| Z | Określa ścieżkę ADsPath bazy wyszukiwania. Na przykład ścieżka ADsPath kontenera Users w domenie usługi Active Directory może mieć wartość "LDAP://CN=Users,DC=Fabrikam,DC=COM". Należy pamiętać, że ścieżka jest ujęta w parę pojedynczych cudzysłowów ('). |
| GDZIE | Opcjonalne słowo kluczowe określające filtr zapytania. |
| ORDER BY | Opcjonalne słowo kluczowe, które generuje sortowanie po stronie serwera, jeśli serwer obsługuje kontrolkę sortowania LDAP. Usługa Active Directory obsługuje kontrolkę sortowania, ale może mieć wpływ na wydajność serwera, szczególnie jeśli zestaw wyników jest duży. Lista-sortowania to rozdzielona przecinkami lista atrybutów, na których ma być sortowana. Należy pamiętać, że usługa Active Directory obsługuje tylko jeden klucz sortowania. Możesz użyć opcjonalnych słów kluczowych ASC i DESC, aby określić rosnącą lub malejącą kolejność sortowania; wartość domyślna to rosnąco. Słowo kluczowe ORDER BY zastępuje dowolny klucz sortowania określony za pomocą właściwości "Sort on" obiektu polecenia ADO. |
Nuta
W przypadkach, gdy jest używany zestaw znaków wielobajtowych, jeśli wyszukiwanie jest wykonywane przez ADO z dialektem SQL, nie można użyć ukośnika odwrotnego do znaków ucieczki. Zamiast tego należy użyć sekwencji ucieczki wymienionych w znaki specjalne. Na przykład w przypadku instrukcji, która używa składni "samAccountName=(Test", która używa ukośnika odwrotnego "\", w celu ucieczki od otwartego nawiasu "(", zamiast tego należy zastąpić ukośnik odwrotny znakiem specjalnym "\28", w następujący sposób: "samAccountName=\28Test".
Poniższe instrukcje zapytania to przykłady dialektu SQL w języku ADSI.
Aby wyszukać wszystkie obiekty grupy.
SELECT ADsPath, cn FROM 'LDAP://DC=Fabrikam,DC=COM' WHERE objectCategory='group'
Aby wyszukać wszystkich użytkowników, których nazwisko zaczyna się literą H.
SELECT ADsPath, cn FROM 'LDAP://OU=Sales,DC=Fabrikam,DC=COM' WHERE objectCategory='person' AND objectClass='user' AND sn = 'H*' ORDER BY sn
Formalna gramatyka zapytań SQL jest zdefiniowana w poniższym przykładzie kodu. Wszystkie słowa kluczowe są bez uwzględniania wielkości liter.
statement ::= select-statement
select-statement ::= SELECT [ALL] select-list FROM table-identifier [WHERE search-condition] [ORDER BY sort-list]
select-list ::= * | select-sublist [, select-sublist]...
select-sublist ::= column-identifier
column-identifier ::= user-defined-name
table-identifier ::= string-literal
search-condition ::= boolean-term [OR search-condition]
sort-list ::= column-identifier [ASC | DESC] [,column-identifier [ASC | DESC]]...
boolean-term ::= boolean-factor [AND boolean-term]
boolean-factor ::= [NOT] boolean-primary
boolean-primary ::= comparison-predicate | (search-condition)
comparison-predicate ::= column-identifier comparison-operator literal
comparison-operator ::= < | > | <= | >= | = | <>
user-defined-name ::= letter [letter | digit]...
literal ::= string-literal | numeric-literal | boolean-literal
string-literal ::= '{character}...' (Any sequence of characters delimited by quotes)
numeric-literal ::= digits [fraction] [exponent]
digits ::= digit [digit]...
fraction ::= . digits
exponent ::= E digits
boolean-literal ::= TRUE | FALSE | YES | NO | ON | OFF
Sprzężenia wewnętrzne SQL nie są obsługiwane przez dostawcę OLE DB usługi Active Directory, ale można użyć języka SQL do dołączania danych SQL i Active Directory. Aby uzyskać więcej informacji, zobacz Creating a Heterogeneous Join between SQL Server and Active Directory.
Tematy pokrewne
-
wyszukiwanie za pomocą obiektów danych ActiveX
-
wyszukiwanie za pomocą OLE DB