База данных: различия между версиями
Sidminik (обсуждение | вклад) Новая страница: «Для взаимодействия с базой данных используется встроенный модуль db. <code>const db = require('@chemsoft/legacy-db');</code> Модуль работает через провайдера <code>ODBC</code> с СУБД MS Access, MS SQL Server. Для СУБД Oracle используется [https://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci01int.htm#LNOCI010 Oracle Call Interface (OCI)]. ==...» |
Sidminik (обсуждение | вклад) Нет описания правки |
||
| Строка 7: | Строка 7: | ||
Для СУБД Oracle используется [https://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci01int.htm#LNOCI010 Oracle Call Interface (OCI)]. | Для СУБД Oracle используется [https://docs.oracle.com/cd/E11882_01/appdev.112/e10646/oci01int.htm#LNOCI010 Oracle Call Interface (OCI)]. | ||
==Сигнатура== | |||
Модуль <code>db</code> предоставляет несколько функций для работы с базой данных. | Модуль <code>db</code> предоставляет несколько функций для работы с базой данных. | ||
| Строка 14: | Строка 14: | ||
Все callback аргументы являются синхронными | Все callback аргументы являются синхронными | ||
each(sql[, parameters, callback]) | ===each(sql[, parameters, callback])=== | ||
sql: <string> - строка SQL запроса | sql: <string> - строка SQL запроса | ||
parameters: <any[]> | <any> - параметры запроса | parameters: <any[]> | <any> - параметры запроса | ||
| Строка 23: | Строка 23: | ||
function each(sql: string, callback: (row: any[]) => void): void; | function each(sql: string, callback: (row: any[]) => void): void; | ||
executeScalar(sql[, parameters]) | |||
===executeScalar(sql[, parameters])=== | |||
sql: <string> - строка SQL запроса | sql: <string> - строка SQL запроса | ||
parameters: <any[]> | <any> - параметры запроса | parameters: <any[]> | <any> - параметры запроса | ||
Функция executeScalar возвращает первую колонку первой строки запроса. | Функция executeScalar возвращает первую колонку первой строки запроса. | ||
execute(sql[, parameters) | ===execute(sql[, parameters)=== | ||
sql: <string> - строка SQL запроса | sql: <string> - строка SQL запроса | ||
parameters: <any[]> | <any> - параметры запроса | parameters: <any[]> | <any> - параметры запроса | ||
| Строка 34: | Строка 35: | ||
Функция execute возвращает детальный результат выполнения запроса и все полученные данные. | Функция execute возвращает детальный результат выполнения запроса и все полученные данные. | ||
ExecuteResult | ===ExecuteResult=== | ||
rows: <any[][]> - Результат выполнения запроса в виде двумерного массива | rows: <any[][]> - Результат выполнения запроса в виде двумерного массива | ||
rowsAffected: <number> - Количество выбранных строк запроса | rowsAffected: <number> - Количество выбранных строк запроса | ||
insertedId: <number> - Идентификатор вставленной сущности (работает только для MS SQL) | insertedId: <number> - Идентификатор вставленной сущности (работает только для MS SQL) | ||
Пример | |||
==Пример== | |||
const db = require('db'); | const db = require('db'); | ||
Версия от 03:56, 30 декабря 2025
Для взаимодействия с базой данных используется встроенный модуль db.
const db = require('@chemsoft/legacy-db');
Модуль работает через провайдера ODBC с СУБД MS Access, MS SQL Server.
Для СУБД Oracle используется Oracle Call Interface (OCI).
Сигнатура
Модуль db предоставляет несколько функций для работы с базой данных.
Внимание
Все callback аргументы являются синхронными
each(sql[, parameters, callback])
sql: <string> - строка SQL запроса parameters: <any[]> | <any> - параметры запроса callback: <Function> - функция, вызывающаяся для обработки каждой строки результата запроса row: <any[]> - строка выборки. Массив, содержащий выбираемые параметры Функция each позволяет обрабатывать многострочные результаты. Параметры можно пропустить, если они не нужны.
function each(sql: string, callback: (row: any[]) => void): void;
executeScalar(sql[, parameters])
sql: <string> - строка SQL запроса parameters: <any[]> | <any> - параметры запроса Функция executeScalar возвращает первую колонку первой строки запроса.
execute(sql[, parameters)
sql: <string> - строка SQL запроса parameters: <any[]> | <any> - параметры запроса Возвращает: <ExecuteResult> Функция execute возвращает детальный результат выполнения запроса и все полученные данные.
ExecuteResult
rows: <any[][]> - Результат выполнения запроса в виде двумерного массива rowsAffected: <number> - Количество выбранных строк запроса insertedId: <number> - Идентификатор вставленной сущности (работает только для MS SQL)
Пример
const db = require('db'); const message = require('message');
const users = []; db.each('select num_rec, fioisp from login', (r) => {
const user = {};
[user.id, user.fullName] = r; users.push(user);
message.show(user);
});
db.execute('insert into uzer (num_user, name_short, name_full) values (?, ?, ?)',
[10, 'КраткоеИмя', 'ПолноеИмя']);
const fullName = db.executeScalar('select fioisp from login where num_rec = ?',
[users[0].id]);