Directory Services

Modifying an ADSI Object from ADO

ADSI for Windows 2000 and DS Client includes a read-only OLE DB provider. This means that you cannot issue the UPDATE statement in the SQL dialect at present.

To modify an object returned from an ADO query

  1. Ask for the ADsPath when specifying attribute names, as in "SELECT ADsPath, ..."
  2. Execute the query and get the ADsPath attribute.
  3. Bind to the record set using ADsPath, and modify the attributes.

The following code example illustrates how to modify an ADSI object after performing the steps outlined in the preceding example.

[Visual Basic]
' Replace department for all users in OU=sales.
Set con = Server.CreateObject("ADODB.Connection")
con.Provider = "ADsDSOObject"
Set command = CreateObject("ADODB.Command")
Set command.ActiveConnection = con
command.CommandText = "SELECT AdsPath, cn FROM 'LDAP://OU=Sales,DC=Fabrikam,DC=com' WHERE objectClass = 'user'"
command.Properties("searchscope") = ADS_SCOPE_ONELEVEL
Set rs = command.Execute
While Not rs.EOF
	Set usr = GetObject(rs.Fields("AdsPath").Value)
	usr.Put "department", "1001"