Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O dialeto SQL, derivado da Linguagem de Consulta Estruturada, usa expressões legíveis por humanos para definir instruções de consulta. Use uma instrução de consulta SQL com as seguintes interfaces de pesquisa ADSI:
- O ActiveX Data Object (ADO) interfaces, que são interfaces de automação que usam OLE DB.
- OLE DB, que é um conjunto de interfaces C/C++ para consultar bancos de dados.
As instruções SQL exigem a sintaxe a seguir.
SELECT [ALL] * | select-list FROM 'ADsPath' [WHERE search-condition] [ORDER BY sort-list]
A tabela a seguir lista palavras-chave de instrução de consulta SQL.
| Palavra-chave | Descrição |
|---|---|
| SELECIONAR | Especifica uma lista separada por vírgulas de atributos a serem recuperados para cada objeto. Se você especificar *, a consulta recuperará apenas o ADsPath de cada objeto. |
| DE | Especifica o ADsPath da base da pesquisa. Por exemplo, o ADsPath do contêiner Users em um domínio do Ative Directory pode ser 'LDAP://CN=Users,DC=Fabrikam,DC=COM'. Esteja ciente de que o caminho está entre aspas simples ('). |
| EM QUE | Uma palavra-chave opcional que especifica o filtro de consulta. |
| ENCOMENDAR POR | Uma palavra-chave opcional que gera uma classificação do lado do servidor se o servidor suportar o controle de classificação LDAP. O Ative Directory oferece suporte ao controle de classificação, mas ele pode afetar o desempenho do servidor, especialmente se o conjunto de resultados for grande. A lista de classificação é uma lista separada por vírgulas de atributos nos quais classificar. Lembre-se de que o Ative Directory oferece suporte a apenas uma única chave de classificação. Você pode usar as palavras-chave ASC e DESC opcionais para especificar a ordem de classificação crescente ou decrescente; O padrão é Ascendente. A palavra-chave ORDER BY substitui qualquer chave de classificação especificada com a propriedade "Sort on" do objeto Command do ADO. |
Observação
Nos casos em que um conjunto de caracteres MultiByte está sendo usado, se a pesquisa for realizada pelo ADO com o dialeto SQL, uma barra invertida não poderá ser usada para escapar de caracteres. Em vez disso, as sequências de escape listadas em de caracteres especiais devem ser usadas. Por exemplo, para uma instrução que usou a sintaxe "samAccountName=(Test", que usa a barra invertida, "\", para escapar do parêntese aberto, "(", em vez disso, você substituiria a barra invertida pelo caractere especial "\28", da seguinte forma: "samAccountName=\28Test".
As instruções de consulta a seguir são exemplos de dialeto SQL no ADSI.
Para procurar todos os objetos de grupo.
SELECT ADsPath, cn FROM 'LDAP://DC=Fabrikam,DC=COM' WHERE objectCategory='group'
Para pesquisar todos os usuários cujo sobrenome começa com a letra H.
SELECT ADsPath, cn FROM 'LDAP://OU=Sales,DC=Fabrikam,DC=COM' WHERE objectCategory='person' AND objectClass='user' AND sn = 'H*' ORDER BY sn
A gramática formal para consultas SQL é definida no exemplo de código a seguir. Todas as palavras-chave não diferenciam maiúsculas de minúsculas.
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
As junções internas do SQL não são suportadas pelo provedor OLE DB do Ative Directory, mas você pode usar o SQL para unir dados SQL e do Ative Directory. Para obter mais informações, consulte Criando uma associação heterogênea entre o SQL Server e o Ative Directory.
Tópicos relacionados
-
Pesquisa com OLE DB