PureBasic

DatabaseUpdate()

Синтаксис

Result = DatabaseUpdate(#Database , Request$)

Описание


Выполняет запрос модификации для указанной Базы Данных. Эта команда не возвращает записи. Чтобы выполнить запрос типа 'SELECT', используйте DatabaseQuery().

Параметры

#Database Номер указанной Базы Данных
Request$ Запрос, который требуется выполнить.

Возвращаемое значение

Возвращает не нулевое значение, если запрос был выполнен успешно, в противном случае 0, например если запрос не удачен по причине ошибки SQL или плохо сформированного SQL-запроса.

Комментарии

Эта функция подобна DatabaseQuery(), но не связана с работой функции NextDatabaseRow(). Также, при помощи этой функции невозможно выполнять запросы типа 'SELECT'. Основное применение - создание таблиц, занесение и обновление записей в Базах Данных. В случае возникновения ошибки, текст с описанием ошибки может быть получен с помощью DatabaseError().

Запрос обновления может содержать подставляемые метки - указатели для связанных переменных. Такие переменные должны быть заданы до вызова функции, с помощью функций SetDatabaseString(), SetDatabaseLong() и т.д. После выполнения обновления связанные переменные очищаются и для будущих вызовов должны быть заданы снова. Синтаксис для определения связанных переменных в SQL зависит от базы данных. Пример ниже демонстрирует синтаксис.

Пример

; Во-первых, откройте базу данных (создайте соединение) со списком сотрудников.
;
If DatabaseQuery(#Database, "SELECT * FROM employee") ; Получите все записи в таблице 'сотрудники'

    While NextDatabaseRow(#Database) ; Цикл для всех записей

        ; Обновите поле 'checked' для каждой записи, при условии,
        ; что поле 'id' является первым в таблице 'employee'
        ;
        DatabaseUpdate(#Database, "UPDATE employee SET checked=1 WHERE id="+GetDatabaseString(#Database, 0))
    Wend

    FinishDatabaseQuery(#Database)
EndIf

Пример: Связывание переменных с SQLite, MySQL и ODBC

; SQLite, MySQL и ODBC используют один и тот же синтаксис для связанных переменных.
; Подставляемым в запрос к базе данных указателем на связанную переменную является символ '?'.
SetDatabaseLong(0, 0, 1)
SetDatabaseString(0, 1, "test")
DatabaseUpdate(0, "UPDATE employee SET checked=? WHERE id=?")

Пример: PostgreSQL

; PostgreSQL использует другой синтаксис: символы $ 1, $ 2... вместо символа '?', в запросе к базе данных.
;
SetDatabaseLong(0, 0, 1)
SetDatabaseString(0, 1, "test")
DatabaseUpdate(0, "UPDATE employee SET checked=$1 WHERE id=$2")

См. также

DatabaseQuery() SetDatabaseString(), SetDatabaseLong(), SetDatabaseQuad(), SetDatabaseFloat(), SetDatabaseDouble() SetDatabaseBlob(), SetDatabaseNull()

Поддерживаемые OS

Все

<- DatabaseQuery() - Оглавление Database - ExamineDatabaseDrivers()->