Module Connection

Implement Connection class

Class Connection

Connection:new (env, own [, ...]) Создает новый объект Connection.
Connection:destroy () Уничтожает объект Connection.
Connection:destroyed () Возвращает статус объекта.
Connection:handle () Возвращает плотформозависимый дескриптор.
Connection:environment () Возвращает родительский объект Environment
Connection:connect ( [...]) Открывает подключение к БД.
Connection:disconnect () Закрывает подключение к БД.
Connection:connected () Возвращает признак подключения к БД.
Connection:query ( [sql [, params]]) Создает новый объект Query .
Connection:prepare (sql [, params]) Создает новый подготовленный объект Query .
Connection:commit () Подтверждает текущую транзакцию.
Connection:rollback () Отменяет текущую транзакцию.
Connection:set_autocommit (value) Устанавливает режим автоматической фиксации транзакций.
Connection:get_autocommit () Возвращает значение режима автоматической фиксации транзакций.
Connection:exec (sql [, table]) Выполняет запрос который не должен возвращать Recordset.
Connection:each (sql [, params], callback) Итератор для перебора Recordset.
Connection:rows (sql [, params]) Итератор для перебора Recordset.
Connection:first_row (sql [, params]) Возвращает первую строку Recordset.
Connection:first_value (sql [, params]) Возвращает первое значение первой записи.
Connection:fetch_all (fetch_mode, sql [, params]) Возвращает полный результат запроса


Class Connection

Connection:new (env, own [, ...])
Создает новый объект Connection.

Parameters:

  • env Environment
  • own boolean если true, то передается владение на env. (Этот объект уничтожается вместе с объектом Connection.)
  • ... параметры для подключения к БД.

Returns:

    Connection

see also:

Connection:destroy ()
Уничтожает объект Connection.


Если уничтожаемый объект использовался для распределения запросов и они не уничтожены, то вызывается исключение

Connection:destroyed ()
Возвращает статус объекта.
Connection:handle ()
Возвращает плотформозависимый дескриптор.

Returns:

    handle
Connection:environment ()
Возвращает родительский объект Environment

Returns:

    Environment
Connection:connect ( [...])
Открывает подключение к БД.

Параметры должны быть предоставлены в одном месте. Нельзя указать название БД в конструкторе, а логин/пароль при открытии.

Parameters:

  • ... параметры для подключения к БД.

Returns:

    boolean признак успешности подключения

see also:

Connection:disconnect ()
Закрывает подключение к БД.

Объект остается доступным для дальнейшего использования

Returns:

    true
Connection:connected ()
Возвращает признак подключения к БД.

Returns:

    boolean признак наличия активного подключения
Connection:query ( [sql [, params]])
Создает новый объект Query .

Parameters:

Returns:

    Query
Connection:prepare (sql [, params])
Создает новый подготовленный объект Query .


Если prepare завершается с ошибкой - бъект Query уничтожается

Parameters:

  • sql string текст запроса
  • params table таблица параметров для запроса

Returns:

    Query
Connection:commit ()
Подтверждает текущую транзакцию.


не имеет смысла если autocommit=true

see also:

Connection:rollback ()
Отменяет текущую транзакцию.


не имеет смысла если autocommit=true

see also:

Connection:set_autocommit (value)
Устанавливает режим автоматической фиксации транзакций.

Parameters:

  • value boolean
Connection:get_autocommit ()
Возвращает значение режима автоматической фиксации транзакций.
Connection:exec (sql [, table])
Выполняет запрос который не должен возвращать Recordset.

Если запрос вернул курсор, то он закрывается, но не производится откат транзакции

Parameters:

  • sql string текст запроса
  • table params таблица параметров для запроса

Returns:

    количество записей задействованных в запросе

see also:

Connection:each (sql [, params], callback)
Итератор для перебора Recordset.

Гарантируется закрытие курсора перед завершением вызова

Parameters:

Usage:

  •  local sql = 'select ID, NAME from Clients where NAME = :NAME'
     db:each(sql, {NAME='ALEX'}, print)
     db:ieach(sql, {NAME='ALEX'}, function(r)print(r[1],r[2])end)
     db:neach(sql, {NAME='ALEX'}, function(r)print(r.ID,r.NAME)end)
  •  local alex_id = db:each('select ID, NAME from Clients', function(ID, NAME)
       if NAME == 'ALEX' then return ID end
     end)
Connection:rows (sql [, params])
Итератор для перебора Recordset.


Итератор для generic for
Гарантируется закрытие курсора по достижении конца или при закрытии подключения.
Перебор продолжается до конца курсора или пока первое поле не будет равно NULL.

Parameters:

  • sql string текст запроса
  • params table параметры для запроса

Usage:

     local sql = 'select ID, NAME from Clients where NAME = :NAME'
     local params = {NAME='ALEX'}
     for ID,NAME in db:rows(sql,params) do print(ID,NAME) end
     for r in db:irows(sql,params) do print(r[1],r[2]) end
     for r in db:nrows(sql,params) do print(r.ID,r.NAME) end
Connection:first_row (sql [, params])
Возвращает первую строку Recordset.


Эквивалентна Connection:each(sql,params,function(...) return ... end)

Parameters:

  • sql string текст запроса
  • params table параметры для запроса

see also:

Connection:first_value (sql [, params])
Возвращает первое значение первой записи.


Эквивалентна (Connection:first_row(sql,params)) с учетом проверки на ошибки

Parameters:

  • sql string текст запроса
  • params table параметры для запроса

see also:

Usage:

    local cnt, err = db:first_value('select count(*) from Clients')
Connection:fetch_all (fetch_mode, sql [, params])
Возвращает полный результат запроса

Parameters:

  • fetch_mode string
    • 'a' именованные записи
    • 'n' нумерованные записи
  • sql string текст запроса
  • params table таблица параметров для запроса

Returns:

    table массив записей

see also:

generated by LDoc 1.3