CoderNotes - заметки программиста

Публикации  »  Windows PowerShell
Скидка 65% на Skillbox

Получите скидку 65% на любой курс программирования на популярной образовательной платформе Skillbox!

Подробнее
Бесплатный хостинг + SSL-сертификат

Зарегистрируйте домен и получите 2 месяца бесплатного хостинга и SSL-сертификат на 1 год в подарок

Подробнее

Подключение к Access из скрипта PowerShell

Для подключения к Access-у проще всего воспользоваться библиотекой ADO (Microsoft ActiveX Data Object). Делается это аналогично, как и с любым другим подключением, например, к SQL Server, пример которого был рассмотрен в предыдущей статье. Ниже приведу примеры работы с Access-ом из скрипта PowerShell.

Работа с базой данных Microsoft Access из скрипта PowerShell

$BaseName = "c:\work\test.accdb"; # путь и имя файла базы
$connection = New-Object -com "ADODB.Connection"
$connectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=$BaseName;"
$connection.Open($connectionString)

Для Access-а 2007-го и ниже просто используйте другую строку подключения:

$connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$BaseName;"

Выполнение запроса к базе и обход результатов:

$recordSet = $connection.Execute("текст_sql-запроса")
While(-not $recordSet.EOF) {
  echo $recordSet.Fields.Item(0).Value
  $recordSet.MoveNext()
}

Выполнение запроса на изменение данных

$connection.Execute("текст_sql-запроса_на_изменение_или_добавление_данных")

Другой способ добавления данных в базу:

$recordSet = new-object -ComObject ADODB.Recordset
$recordSet.AddNew()
$recordSet.Fields.Item("Field1").value = "test1"
$recordSet.Fields.Item("Field2").value = "test2"
$recordSet.Update()

Закрытие подключения к базе:

$connection.Close()

В дополнение скажу, что кроме английских названий таблиц и полей, вы так же можете совершенно спокойно использовать русскоязычные названия и писать их в своем скрипте.

Категория: Windows PowerShell

Книги по теме:

Посмотреть все книги по программированию

Комментарии к статье:

Пока комментариев нет, ваш будет первым ;)

Добавить комментарий: