Изменение данных в таблице при помощи объектов Connection и Recordset

В качестве примера рассмотрим программное изменение записи таблицы SQL Server. Пусть в таблице Book необходимо увеличить на единицу значение столбца Koi в записи с первичным ключом ISBN, равным 100036. На языке VBA программа будет выглядеть следующим образом.

Dim сп As New ADODB. Connection

Dim rs As New ADODB.Recordset

cn. ConnectionString = _

"Provider=SQLOLEDB. 1; UID=userl;pwd=123456;

DataBase =BookLibrary;Server=(local)"

cn. Open

rs.Open "select *from book where ISBN=100036", cn, adOpenKeyset, adLockPessimistic

If Not rs.EOF Then

rs.Fieldsf'Kol") = rs.Fields ("Koi") + 1

rs. Update

End If

rs. Close: cn. Close

Set rs = Nothing: Set cn = Nothing

Здесь в строке подключения указан OLE DB провайдер SQL Server (SQLOLEDB.l), база данных на сервере, в которой находится изменяемая таблица (BookLibrary), место расположения SQL Server (local, т. е. тот же компьютер, на котором выполняется данная программа), а также имя входа и пароль, так как для подключения к серверу используется аутентификация SQL Server.

После задания строки подключения открывается соединение, затем выполняется метод Open объекта Recordset, где в качестве источника указан оператор Select, выбирающий запись в таблице с заданным значением столбца ISBN. Если после открытия объект Recordset не пуст, а содержит одну запись, то производится увеличение столбца Ко! на единицу и это изменение фиксируется в таблице.

То же самое изменение можно произвести и без привлечения объекта Recordset, а с помощью метода Execute объекта Connection. Метод Execute непосредственно позволяет выполнять на сервере операторы SQL. Ниже приведен этот вариант программы.

Dim cn As New ADODB. Connection

cn.Open "Provider=SQLOLEDB.lintegrated Security^ SSPI; Data-Base =BookLibrary;Server=(local) "

cn.Execute "update book set kol=kol+1 where 1SBN=100036" cn. Close

Setcn = Nothing

Здесь строка подключения задана как параметр метода Open объекта Connection. Для подключения использована аутентификация Windows, поскольку в строке подключения значение атрибута «Integrated Sequrity» задано равным «SSPI».

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >