我正在尝试连接到Access 2000数据库文件(* .mdb),但我遇到了一些问题。这里是迄今为止的剧本,通过PowerShell连接到Access MDB文件的问题
1)谷歌搜索如何使用PowerShell连接到数据库,导致以下作为源代码基准。
$adOpenStatic = 3
$adLockOptimistic = 3
$objConnection = New-Object -comobject ADODB.Connection
$objRecordset = New-Object -comobject ADODB.Recordset
$objConnection.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = c:\scripts\sample.mdb")
$objRecordset.Open("Select * from TotalSales", $objConnection,$adOpenStatic,$adLockOptimistic)
$objRecordset.MoveFirst()
do
{ $objRecordset.Fields.Item("EmployeeName").Value; $objRecordset.MoveNext() }
until ($objRecordset.EOF -eq $True)
$objRecordset.Close()
$objConnection.Close()
2)我用我的数据库的完全合格的路径替换数据源,然后提出以下内容。
Exception calling "Open" with "5" argument(s): "Record(s) cannot be read; no read permission on 'RqRequirements'."
At :line:23 char:18
+ $objRecordset.Open <<<< ("Select * from RqRequirements", $objConnectionCsdscDB,$adOpenStatic,$adLockOptimistic)
3)由于这是一个Rational RequisitePro的数据库中,我几乎不必直接编辑数据库,而是来看看我们需要编辑数据库的直接,我们需要发出以下命令,如第一个链接Windows桌面:
"C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE" /wrkgrp C:\Program Files\Rational\RequisitePro\bin\rqprodb.mda" /user "xxxxxxx" /pwd "yyyyy"
4)以上面列出的脚本,并改变它略显我有以下几点:
$adOpenStatic = 3
$adLockOptimistic = 3
$objConnectionRqProDB = New-Object -comobject ADODB.Connection
$objConnectionCsdscDB = New-Object -comobject ADODB.Connection
$objRecordset = New-Object -comobject ADODB.Recordset
$cnnStringRqProDB = "Provider = Microsoft.Jet.OLEDB.4.0;" +
"Data Source = C:\\Program Files\\Rational\\RequisitePro\\bin\\rqprodb.mda;" +
"UID=requisite admin;" +
"PWD=multiuser"
$cnnStringCsdscDB = "Provider = Microsoft.Jet.OLEDB.4.0;" +
"Data Source = J:\\TestPowerShell\\Rational.MDB"
$objConnectionRqProDB.Connectionstring = $cnnStringRqProDB
$objConnectionRqProDB.Open()
$objConnectionCsdscDB.Connectionstring = $cnnStringCsdscDB
$objConnectionCsdscDB.Open()
$objRecordset.Open("Select * from RqRequirements", $objConnectionCsdscDB,$adOpenStatic,$adLockOptimistic)
$objRecordset.Close()
$objConnection.Close()
5)当我运行此脚本,我得到的弗洛翼错误:
Exception calling "Open" with "4" argument(s): "Could not find installable ISAM."
At :line:17 char:26
+ $objConnectionRqProDB.Open <<<<()
6)我做了一些搜索,发现下面的链接,http://support.microsoft.com/kb/209805,我查了注册表和项是存在于
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\喷气\ 4.0 \发动机\悖论 的Win32 = C:\ WINDOWS \ SYSTEM32 \ mspbde40.dll
该文件位于%SYSTEM32%\
注意,我没有安装我的系统上访问(这可能是一个潜在的问题?我不知道,但我不这么认为,因为我现在用的是ADO)
问题:
1)我怎样在脚本中包含的连接字符串中的“/ wrkgrp”选项?
2)假设缺少连接字符串中的“/ wrkgrp”选项不是我的问题,可能是什么问题?
3)是否需要在系统上安装Access以使其工作?
谢谢,马克
感谢DJ,将系统数据库连接字符串中的工作。请注意,在'数据源'行缺少'+'。 – lordhog 2009-07-29 22:55:37