แบบสอบถามโฆษณาจากฟิลด์คำอธิบายเซิร์ฟเวอร์ sql 2008 ให้ข้อผิดพลาด

ฉันกำลังพยายามสืบค้น Active Directory ด้วยแบบสอบถาม SQL ต่อไปนี้ ซึ่งทำงานได้อย่างสมบูรณ์

SELECT * FROM OpenQuery(ADSI, 
                         'SELECT title, displayName, sAMAccountName, givenName, 
                                 telephoneNumber, facsimileTelephoneNumber, sn,  
                                 mail, physicalDeliveryOfficeName
                          FROM ''LDAP://DC=mydomain,DC=org'' 
                          WHERE sAMAccountName = ''myUser''')

เมื่อฉันเพิ่มแอตทริบิวต์ description ฉันได้รับข้อผิดพลาดต่อไปนี้:

ข่าวสารเกี่ยวกับ 7346 ระดับ 16 สถานะ 2 บรรทัด 6
ไม่สามารถรับข้อมูลของแถวจากผู้ให้บริการ OLE DB "ADSDSOObject" สำหรับเซิร์ฟเวอร์ที่มีการเชื่อมโยง "ADSI" ไม่สามารถแปลงค่าข้อมูลได้เนื่องจากเหตุผลอื่นนอกเหนือจากการลงชื่อไม่ตรงกันหรือล้น


person Rick    schedule 28.03.2012    source แหล่งที่มา


คำตอบ (2)


ความสามารถในการสืบค้น SQL/ADO ใน Active Directory มีจำกัดมาก - ฉันจะพยายามหลีกเลี่ยงการใช้หากเป็นไปได้

เหตุผลก็คือแอตทริบิวต์ description ใน Active Directory มีหลายค่า - อาจมีหลายค่า (สิ่งที่เป็นไปไม่ได้ในแบบจำลองฐานข้อมูลเชิงสัมพันธ์)

ดังนั้น ผู้ให้บริการสืบค้น SQL/ADO ไม่สามารถ อ่านแอตทริบิวต์ที่มีหลายค่าเหล่านั้นจาก LDAP - ไม่มีวิธีหรือตัวเลือกหรือช่องทำเครื่องหมายในการเปิดใช้งาน - เพียงแต่เป็นไปไม่ได้

person marc_s    schedule 28.03.2012

ฉันมีปัญหาเดียวกันในการรับฟิลด์ Description จาก AD ในขณะที่พยายามใช้ ADsDSOObject และ ADO

คุณต้องสลับค่าด้วยคำสั่งประเภท For Each หรือ Do until ... EOF

นี่คือตัวอย่างที่ดี

person TheSavo    schedule 29.03.2012