【问题标题】:I am getting an when retrieving info from Active Directory and attempting to insert into DB我在从 Active Directory 检索信息并尝试插入数据库时​​收到
【发布时间】:2012-07-03 04:19:45
【问题描述】:

我不确定我在这里做错了什么。

我正在尝试从 Active Directory 中检索一些值并将它们插入到我们的 sql server 数据库中。

我在第 23 行“提供者:未指定的错误”上不断收到错误

这是第 23 行 --> 设置 adoRecordset = adoCommand.Execute

以下是我正在使用的代码,谢谢:

    '==============
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection
 ' Search entire Active Directory domain.
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
strBase = "<LDAP://" & strDNSDomain & ">"
strFilter = "(&(objectCategory=person)(objectClass=user))"
'strFilter = "(&(objectClass=computer)(cn=" & strComputer & "))"
' Comma delimited list of attribute values to retrieve.
'strAttributes = "sAMAccountName,cn"
strAttributes = "employeeID,name,givenName,sname"
' Construct the LDAP syntax query.
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 30
adoCommand.Properties("Cache Results") = False
' Run the query.
Set adoRecordset = adoCommand.Execute  **<--Error pointing to this line**
' ********  SET UP DB CONNECTION **********
Set dbConn = createobject("ADODB.Connection")
dbConn.ConnectionString = "driver=Sql Server;server=serverName;uid=myuser;pwd=mypwd;database=myDB"
dbConn.Open
' *****************************************
strDetails = ""
' Enumerate the resulting recordset.
Do Until adoRecordset.EOF
    ' Retrieve values and display.
      strEmpID = adoRecordset.Fields("employeeID").Value
      strName = adoRecordset.Fields("name").Value
      strfname = adoRecordset.Fields("givenName").Value
      strlname = adoRecordset.Fields("sname").Value
' ******* INSERT INTO DB *************
      dbConn.Execute "INSERT INTO myTable Values('" & strEmpID & "','" & strName & "','" & strfname & "','" & strlname & "')"
' ************************************
      ' Move to the next record in the recordset.
    adoRecordset.MoveNext
Loop
' Clean up.
adoRecordset.Close
Set adoRecordset = Nothing
adoConnection.Close

【问题讨论】:

    标签: vbscript active-directory


    【解决方案1】:

    您与 MS SQL Server 的连接字符串 - "driver=Sql Server; ..." - 看起来很可疑。使用the source for connection strings,我希望得到类似"Provider= ..." 的信息,但如果没有关于版本和访问策略(odbc、oledb、...)的更多信息,就很难判断了。

    我写过关于使用 .udl 文件在 GUI here 中试验连接字符串的文章。

    【讨论】:

    • 嗨,Ehhehard,感谢您提供的链接。我创建了 udl 并在我的代码上使用了链接,但仍然是同样的错误。查看错误,连接字符串在第 26 行,但错误在第 23 行。我怀疑错误正在寻找错误行上方的内容。您能否让我知道您可能需要哪些具体信息?我正在尝试使用代码指向我们的 Active Directory,检索一些数据并将数据插入到数据库中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2016-09-17
    • 2020-10-26
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多