Модификация данных

Материал из K3-Macro
(перенаправлено с «AdbDelRec»)
Макро | Унифицированная работа с базами данных | Подключение к базе данных | Получение набора данных | Информация о наборе данных | Навигация по набору данных | Получение данных из набора | Модификация данных | Транзакции | Вспомогательные функции | Заполнения массива набором записей

Модификация данных выступает в двух аспектах:

  • Изменения структуры данных
  • Изменение собственно содержимого записей.

Для первого случая предусмотрена функция модификации структуры данных.

adbModify[править | править код]

INT adbModify(INT <idConn>, STRING <SQLString>|string ARRAY <SQLArray> [,INT <N1>[, INT <N2>]])

Начиная с версии 8.0 при работе с базами SQL Server не поддерживается. Рекомендуется использовать только для соединений с mdb.

Функция производит действия по модификации данных из базы данных с номером <idConn> в соответствии с параметрами, заданными строкой <SQLString>. Однако, поскольку в системе K3 строка не может содержать больше 255 символов, а строка с SQL запросом может быть и длиннее, то можно воспользоваться альтернативным синтаксисом функции и использовать строковый массив <SQLArray>.

Функция возвращает номер, однозначно идентифицирующий набор записей. В случае ошибки, функция возвращает ноль. На одном соединении можно получить несколько наборов.

В случае использования массива <SQLArray> есть варианты:

1. Есть только массив – (параметры <N1> и <N2> отсутствуют). Из всего массива будет формироваться единая строка запроса.

2. Есть массив и только один <N1> – из массива, начиная с первого элемента до <N1>–го элемента будет формироваться единая строка запроса.

3. Есть массив и заданы <N1> и <N2> — из массива, начиная с элемента <N1> и до элемента <N2> будет формироваться единая строка запроса.

Пример:

ConStr="Provider=Microsoft.Jet.OLEDB.4.0";
ConStr=ConStr+"Data Source=d:\\nwind.mdb";
MyConn=adbConn(ConStr);
SQLStr="CREATE TABLE MYTABLE (Field1 INTEGER NOT NULL,";
SQLStr=SQLStr+" Field2 VARCHAR NOT NULL)";
MyRs=adbModify(MyConn,SQLStr);
MyRs=adbClose(MyRs);
MyConn=adbDisCon(MyConn);

В примере формируется новая таблица. Правила создания определены синтаксисом языка SQL.

Пример добавления записи в новую таблицу:

ConStr="Provider=Microsoft.Jet.OLEDB.4.0";
ConStr=ConStr+"Data Source=d:\\nwind.mdb";
MyConn=adbConn(ConStr);
SQLStr="INSERT INTO MYTABLE (Field 1, Field 2) VALUES";
SQLStr=SQLStr+" (123,'Наши поздравления!')";
MyRs=adbModify(MyConn,SQLStr);
MyRs=adbClose(MyRs);
MyConn=adbDisCon(MyConn);

Отметим, что данная команда сама формирует новый набор записей.

adbSetValue[править | править код]

LOGICAL adbSetValue(INT <idRs>, VARIANT <Fld>, VARIANT <Value> )

Начиная с версии 8.0 при работе с базами SQL Server не поддерживается. Рекомендуется использовать только для соединений с mdb.

Функция изменяет значение поля <Fld>, заданного либо строкой с именем поля, либо числом с порядковым номером поля текущей (или новой) записи набора <idRs>. В поле записывается значение, заданное параметром <Value>. Функция возвращает:

1 — в случае успешного выполнения,
0 — в случае ошибки.
I.png В процессе сохранения значения в поле осуществляется попытка приведения значения к типу поля. То есть, если поле имеет тип «Строка», а записывается число, число будет преобразовано в строку.

adbDelRec[править | править код]

Logical adbDelRec(INT <idRs>)

Начиная с версии 8.0 при работе с базами SQL Server не поддерживается. Рекомендуется использовать только для соединений с mdb.

Функция удаляет текущую запись в наборе записей с номером <idRs>.

Функция возвращает:

1 — в случае успешного выполнения,
0 — в случае ошибки.

Следует отметить, что операции изменения не изменяют данные, а лишь определяют, какие изменения должны быть совершены. Внесенные изменения вступают в силу после выполнения функции adbUpdate.

adbUpdate[править | править код]

LOGICAL adbUpdate(INT <idRs>)

Примечание: Не требуется вызывать adbUpdate после adbModify в SQL и в mdb-версии

Функция осуществляет внесение изменений в набор записей с номером <idRs>, опредленных с помощью функций adbSetValue, adbDelRec.

Функция возвращает:

1 — в случае успешного выполнения,
0 — в случае ошибки.

Макро | Унифицированная работа с базами данных | Подключение к базе данных | Получение набора данных | Информация о наборе данных | Навигация по набору данных | Получение данных из набора | Модификация данных | Транзакции | Вспомогательные функции | Заполнения массива набором записей