База данных: различия между версиями
Sidminik (обсуждение | вклад) |
Sidminik (обсуждение | вклад) |
||
| Строка 15: | Строка 15: | ||
===each(sql[, parameters, callback])=== | ===each(sql[, parameters, callback])=== | ||
*<code>sql: <string></code> - строка SQL запроса | *<code>sql: <string></code> - строка SQL запроса; | ||
*<code>parameters: <any[]> | <any></code> - параметры запроса | *<code>parameters: <any[]> | <any></code> - параметры запроса; | ||
*<code>callback: <Function></code> - функция, вызывающаяся для обработки каждой строки результата запроса | *<code>callback: <Function></code> - функция, вызывающаяся для обработки каждой строки результата запроса; | ||
**<code>row: <any[]></code> - строка выборки | **<code>row: <any[]></code> - строка выборки; массив, содержащий выбираемые параметры. | ||
Функция <code>each</code> позволяет обрабатывать многострочные результаты. Параметры можно пропустить, если они не нужны. | Функция <code>each</code> позволяет обрабатывать многострочные результаты. Параметры можно пропустить, если они не нужны. | ||
Версия от 04:04, 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]);