Программирование >>  Создание клиентов mysql 

1 ... 125 126 127 [ 128 ] 129 130 131 ... 201


398 Главке. VBScript и ODBC

di Объект взаимодействия с базой данн1х

dim query Запрос

dim names Массив кгмен для инструкции INSERT

dim n Счетчикцикла

dim rows Число измененных записей

Подключение к серверу. set connection=server.createobject( adodb.connection ) connection.open DSN=myserver

set cmd=server.createobject{ adodb,command ) set cmd.activeconnection=connection

Создание таблиц!, query = CREATE TABLE testapi (

query = query & ID INT (11) NOT NULL AUTO INCREMENT,

query = query & Name VARCHAR (64),

query = query & PRIMARY KEY (ID)

query = query & )

cmd.commandtext=query

cmd.execute

Инструкция для вставки записей, query = INSERT INTO testapi (Name) VALUES (?) cmd.commandtext=query

Создание входного параметра TnnaVARCHAR (64) . cmd.parameters.append cmd.createparameter ( Name , 200, 1, 64, )

cmd.prepared=true

Вставка записей, names = array( Leon , Vicky , Carl , Ricky , Nicki , Jeff , Bo , Tina , Joey )

for each n in names cmd( Name )=n

rows

response.write(rows &

next

ro ed<br> & vbcr)

Очистка. cmd.parameters.delete 0 cmd.prepared=false

Удаление записей. cmd.commandtext= DELETE FROM testapi WHERE ID < 4 cmd.execute rows

response.write(rows & rows deleted<br> & vbcr)

Обновление записей, cmd.commandtext= UPDATE testapi SET Name = None cmd.execute rows

response.write(rows & rows updated<br> & vbcr)

Удаление таблицы, cmd.commandtext= DROP TABLE testapi cmd.execute




Изменение данных 399

Закрытиесоединения. set cnid=nothing connection.close

set connection=nothing

response.write( </table> & vbcr)

%>

</bodY> </html>

Сравните использование объекта command в листинге 18.3 с примером, показанным в листинге 18.2. Сразу после создания объект связывается с активным соединением. Текст запроса не передается непосредственно методу execute {), а заносится в свойства dtext, после чего метод execute () вызывается без аргументов.

Обратите внимание на способ вставки записей. Массив names содержит имена, вставляемые в таблицу testapi. Чтобы не нужно было создавать отдельный запрос для каждой инструкции INSERT, объекту command передается параметризованный запрос. Вместо значений, подставляемых позднее, указан метасимвол ?. В других СУБД поддерживаются предварительно скомпилированные запросы, которые анализируются один раз, а потом многократно выполняются. В MySQL вместо этого применяются запросы с параметрами.

Перед выполнением запроса необходимо определить значение каждого параметра. В листинге 18.3 единственный параметр инструкции INSERT имеет тип VARCHAR (64). Мето rameter () создает объект, содержащий описание параметра, а метод append) добавляет этот объект в коллекцию параметров (par ameters) объекта command. Метод createparameter () принимает пять аргументов. Первый из них идентифицирует параметр запроса. Второй аргумент задает его SQL-тип. Это должна быть целочисленная константа. В частности, число 200 соответствует типу VARCHAR. Описание соответствующих констант можно найти в библиотеке MSDN компании Microsoft. Третий аргумент определяет, является ли параметр входным, выходным или двойственным. Подобно предыдущему аргументу, это целочисленная константа, описанная в документации по VBScript. Последние два аргумента задают длину параметра и его значение. В каждой операции вставки значение параметра будет разным, поэтому первоначально оно определено как пустая строка.

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

В цикле for параметру инструкции INSERT по очереди присваиваются значения, хранящиеся в массиве names. Метод execute (} помещает в переменную rows число записей, вставленных в таблицу. Последовательная вставка записей - не самое эффективное решение, учитывая, что в MySQL есть разновидность инструкции INSERT, позволяющая обрабатывать группу записей (см. главу 13, ИнструкцииSQL ). Данный метод удобен тогда, когда требуется выполнять произвольные пользовательские запросы. Кроме того, он позволяет избежать проблем с управляющими символами.



В этой главе.

Подготовка программы Извлечение данных Изменение данных



1 ... 125 126 127 [ 128 ] 129 130 131 ... 201

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика