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:
see also:
- Connection:destroy ()
-
Уничтожает объект Connection.
Если уничтожаемый объект использовался для распределения запросов и они не уничтожены, то вызывается исключение - Connection:destroyed ()
- Возвращает статус объекта.
- Connection:handle ()
-
Возвращает плотформозависимый дескриптор.
Returns:
-
handle
- Connection:environment ()
-
Возвращает родительский объект Environment
Returns:
- Connection:connect ( [...])
-
Открывает подключение к БД.
Параметры должны быть предоставлены в одном месте. Нельзя указать название БД в конструкторе, а логин/пароль при открытии.
Parameters:
- ... параметры для подключения к БД.
Returns:
-
boolean
признак успешности подключения
see also:
- Connection:disconnect ()
-
Закрывает подключение к БД.
Объект остается доступным для дальнейшего использования
Returns:
-
true
- Connection:connected ()
-
Возвращает признак подключения к БД.
Returns:
-
boolean
признак наличия активного подключения
- Connection:query ( [sql [, params]])
-
Создает новый объект Query .
Parameters:
Returns:
- Connection:prepare (sql [, params])
-
Создает новый подготовленный объект Query .
Если prepare завершается с ошибкой - бъект Query уничтожаетсяParameters:
Returns:
- Connection:commit ()
-
Подтверждает текущую транзакцию.
не имеет смысла если autocommit=truesee also:
- Connection:rollback ()
-
Отменяет текущую транзакцию.
не имеет смысла если autocommit=truesee 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:
- sql string текст запроса
- params table параметры для запроса
- callback dba.callback_function
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:
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:
see also:
- Connection:first_value (sql [, params])
-
Возвращает первое значение первой записи.
Эквивалентна (Connection:first_row(sql,params)) с учетом проверки на ошибкиParameters:
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:
- fetch_mode
string