Пропаганда

понедельник, 8 февраля 2016 г.

PowerSHELL, поключение к MS SQL с помощью ODBC драйвера.

Для подключения к базе данных MS SQL с помощью odbc драйвера в powershell нужно создать экземпляр OdbcCommand класса пространства имён System.Data.Odbc .Net Framework.
$cn = New-Object System.Data.Odbc.OdbcCommand
Этот объект содержит следующие свойства:
 CommandText        :
CommandTimeout   : 30
CommandType        : Text
Connection               :
DesignTimeVisible  : True
Parameters                : {}
Transaction               :
UpdatedRowSource  : Both
Site              :
Container         :
Заполним нужные из них.
В свойстве  " CommandText " укажем желаемый SQL-запрос.
$cn.commandtext="select * from logos.dbo.content"
В свойство "Connection" данные для подключения.
$cn.connection="dsn=logosdrv;uid=sa;pwd=SECRET;database=logos"
, где dsn - имя созданного odbc источника данных, uid - имя пользователя, pwd - пароль, database - базаданных.

В итоге, свойства объекта $cn примут такие значения
 CommandText         : select * from logos.dbo.content
CommandTimeout    : 30
CommandType         : Text
Connection                : System.Data.Odbc.OdbcConnection
DesignTimeVisible   : True
Parameters                 : {}
Transaction                :
UpdatedRowSource  : Both
Site              :
Container     :
 , в свою очередь его свойство "Connection" такие
ConnectionString     : dsn=logosdrv;uid=sa;pwd=SECRET;database=logos
ConnectionTimeout : 15
Database                  :
DataSource              :
ServerVersion         :
State                        : Closed
Driver            :
Site              :
Container         :
Теперь нужно открыть соединение. Для это используется метод open(), соответствующего свойства.
 $cn.connection.open()
И значения свойства "Connection" становятся такими
ConnectionString     : dsn=logosdrv;uid=sa;database=logos
ConnectionTimeout : 15
Database                  : logos
DataSource              : SRV-SQL\BEGEMOT
ServerVersion         : 12.00.4100
State                        : Open
Driver                     : msodbcsql11.dll
Site              :
Container         :
Теперь подключение к базе установлено и можно совершать SQL-запросы.
Полный Листинг тут.

Ещё один способ подключения к MS SQL, это создать экземпляр OdbcDataAdapter класса того же пространства имён.
$da=new-object system.data.odbc.odbcdataadapter
, который имеет следующие свойства:
 DeleteCommand                      :
InsertCommand                        :
SelectCommand                        :
UpdateCommand                      :
UpdateBatchSize                       : 1
AcceptChangesDuringFill         : True
AcceptChangesDuringUpdate   : True
ContinueUpdateOnError            : False
FillLoadOption                          : OverwriteChanges
MissingMappingAction            : Passthrough
MissingSchemaAction              : Add
ReturnProviderSpecificTypes   : False
TableMappings                          : {}
Site                        :
Container                   :
Т.е. тут уже сразу выделены четыре вида команд: DeleteCommand, InsertCommand, SelectCommand и UpdateCommand.

Зададим свойство SelectCommand,
$da.selectcommand="select * from logos.dbo.content"
Это свойство имеет свои свойства:
CommandText          : select * from logos.dbo.content
CommandTimeout    : 30
CommandType         : Text
Connection        :
DesignTimeVisible   : True
Parameters                : {}
Transaction               :
UpdatedRowSource  : Both
Site              :
Container         :
Зададим свойство Connection.
 $da.selectcommand.connection="dsn=logosdrv;uid=sa;pwd=SECRET;database=logos"
со свойствами
 ConnectionString    : dsn=logosdrv;uid=sa;pwd=SECRET;database=logos
ConnectionTimeout : 15
Database                  :
DataSource              :
ServerVersion          :
State                         : Closed
Driver            :
Site              :
Container         :
Откроем соединение.
$da.selectcommand.connection.open()
 ConnectionString    : dsn=logosdrv;uid=sa;database=logos
ConnectionTimeout : 15
Database                  : logos
DataSource              : SRV-SQL\BEGEMOT
ServerVersion          : 12.00.4100
State                         : Open
Driver                      : msodbcsql11.dll
Site              :
Container         :
 И теперь можно делать запросы.
Листинг тут.


Комментариев нет :

Отправить комментарий