Перейти к содержанию

База данных: различия между версиями

Материал из wiki.chemsoft.ru
Строка 15: Строка 15:


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


 
<code>function each(sql: string, callback: (row: any[]) => void): void;</code>
function each(sql: string, callback: (row: any[]) => void): void;


===executeScalar(sql[, parameters])===
===executeScalar(sql[, parameters])===

Версия от 04:03, 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]);