|
Программирование >> Создание клиентов mysql
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 ). Данный метод удобен тогда, когда требуется выполнять произвольные пользовательские запросы. Кроме того, он позволяет избежать проблем с управляющими символами. В этой главе. Подготовка программы Извлечение данных Изменение данных
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |