Модификация данных
Модификация данных выступает в двух аспектах:
- Изменения структуры данных
- Изменение собственно содержимого записей.
Для первого случая предусмотрена функция модификации структуры данных.
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 — в случае ошибки.
В процессе сохранения значения в поле осуществляется попытка приведения значения к типу поля. То есть, если поле имеет тип «Строка», а записывается число, число будет преобразовано в строку. |
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 — в случае ошибки.