Я пытаюсь подключиться к файлу базы данных Access 2000 (* .mdb), но у меня всего несколько проблем. Вот сценарий до сих пор,Проблемы с подключением к файлу доступа MDB через PowerShell
1) Googled, как подключиться к базе данных с помощью 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) Поскольку это Рациональный база данных RequisitePro я почти никогда не нужно редактировать базу данных непосредственно, но пришел узнать, если нам нужно изменить базу данных направить нам нужно выполнить следующую команду в качестве ссылки на винда Desktop:
"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) Когда я запускаю этот скрипт я получаю FOLLO ошибка крыла:
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 \ Microsoft \ Jet \ 4.0 \ Engines \ Paradox win32 = C: \ WINDOWS \ system32 \ mspbde40.dll
этот файл находится в% SYSTEM32% \
Примечание, я не установил доступ на моей системе (это могло быть основной проблемой ? Я не уверен, но я бы не думаю, так как я использую ADO)
Вопросы:
1) Как я могу включить опцию «/ wrkgrp» в строке подключения в сценарии?
2) Предполагая, что параметр «/ wrkgrp» в строке подключения не является проблемой, что может быть проблемой?
3) Должен ли быть установлен в системе доступ к системе, чтобы это работало?
Thanks, Mark
Спасибо DJ, размещение базы данных системы в строке соединения работала. В качестве примечания, пропуская «+» в строке «Источник данных». – lordhog