Dialek SQL

Dialek SQL, berasal dari Bahasa Permintaan Terstruktur, menggunakan ekspresi yang dapat dibaca manusia untuk menentukan pernyataan kueri. Gunakan pernyataan kueri SQL dengan antarmuka pencarian ADSI berikut:

  • Antarmuka ActiveX Data Object (ADO), yang merupakan antarmuka Automation yang menggunakan OLE DB.
  • OLE DB, yang merupakan sekumpulan antarmuka C/C++ untuk mengkueri database.

Pernyataan SQL memerlukan sintaks berikut.

SELECT [ALL] * | select-list FROM 'ADsPath' [WHERE search-condition] [ORDER BY sort-list]

Tabel berikut mencantumkan kata kunci pernyataan kueri SQL.

Kata kunci Deskripsi
SELECT Menentukan daftar atribut yang dipisahkan koma untuk diambil untuk setiap objek. Jika Anda menentukan *, kueri hanya mengambil ADsPath dari setiap objek.
DARI Menentukan ADsPath dari dasar pencarian. Misalnya, ADsPath dari kontainer Pengguna di domain Direktori Aktif mungkin 'LDAP://CN=Users,DC=Fabrikam,DC=COM'. Ketahuilah bahwa jalur diapit dalam sepasang tanda kutip tunggal (').
WHERE Kata kunci opsional yang menentukan filter kueri.
ORDER BY Kata kunci opsional yang menghasilkan pengurutan sisi server jika server mendukung kontrol pengurutan LDAP. Direktori Aktif mendukung kontrol pengurutan, tetapi dapat memengaruhi performa server, terutama jika kumpulan hasilnya besar. Daftar pengurutan adalah daftar atribut yang dipisahkan koma untuk diurutkan. Ketahuilah bahwa Direktori Aktif hanya mendukung satu kunci pengurutan. Anda dapat menggunakan kata kunci ASC dan DESC opsional untuk menentukan urutan urutan naik atau turun; defaultnya adalah naik. Kata kunci ORDER BY mengambil alih kunci pengurutan apa pun yang ditentukan dengan properti "Urutkan di" dari objek Perintah ADO.

 

Catatan

Dalam kasus di mana Set Karakter MultiByte sedang digunakan, jika pencarian dilakukan oleh ADO dengan dialek SQL, maka garis miring terbalik tidak dapat digunakan untuk meloloskan karakter. Sebaliknya, urutan escape yang tercantum dalam Karakter Khusus harus digunakan. Misalnya, untuk pernyataan yang menggunakan sintaks "samAccountName=(Test", yang menggunakan garis miring terbalik, "\", untuk menghindari tanda kurung terbuka, "(", sebagai gantinya, Anda akan mengganti garis miring terbalik dengan karakter khusus "\28", sebagai berikut: "samAccountName=\28Test".

 

Pernyataan kueri berikut adalah contoh dialek SQL di ADSI.

Untuk mencari semua objek grup.

SELECT ADsPath, cn FROM 'LDAP://DC=Fabrikam,DC=COM' WHERE objectCategory='group'

Untuk mencari semua pengguna yang Nama Belakangnya dimulai dengan huruf H.

SELECT ADsPath, cn FROM 'LDAP://OU=Sales,DC=Fabrikam,DC=COM' WHERE objectCategory='person' AND objectClass='user' AND sn = 'H*' ORDER BY sn

Tata bahasa formal untuk kueri SQL ditentukan dalam contoh kode berikut. Semua kata kunci tidak peka huruf besar/kecil.

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

Gabungan dalam SQL tidak didukung oleh penyedia Active Directory OLE DB, tetapi Anda dapat menggunakan SQL untuk menggabungkan data SQL dan Direktori Aktif. Untuk informasi selengkapnya, lihat Membuat Gabungan Heterogen antara SQL Server dan Direktori Aktif.

Sintaks Filter Pencarian

Dialek LDAP

Mencari dengan Antarmuka IDirectorySearch

Mencari dengan Objek Data ActiveX

Mencari dengan OLE DB