Сохранить выборку
Синтаксис
L_SWORD SaveChanges ( L_CHAR *szFileName=NULL); /* место сохранения */
Входные параметры
Параметр | Описание | |
---|---|---|
szFileName
| Спецификация (путь и имя) файла для сохранения выборки |
Выходные параметры
Отсутствуют.
Описание
Метод сохраняет все изменённые данные выборки в БД или, если задан параметр szFileName, в указанном файле. В случае если соединение было открыто в транзакционном режиме, после выполнения последовательности SQL-запросов выполняется команда commit. Если при выполнении запросов возникают ошибки связи (например, разрывается соединение), соединение вновь пытается восстановиться и выполнить запросы в течение определённого интервала времени, т.е. всё происходит таким же образом, как для класса linConnection.
Параметр szFileName задаёт спецификацию файла, в котором будет сохранена последовательность SQL-запросов по изменению данных выборки. Должен быть указан полный путь к файлу, который открывается в режиме "wb", т.е. создаётся новый файл только для записи, при этом происходит перезапись любого существующего файла с тем же именем.
Изменённые значения BLOB-полей сохраняются в отдельных файлах в том же каталоге, что и файл с SQL-запросами. При этом среди SQL-запросов вставлены комментарии, поясняющие, где и каким образом должно быть добавлено содержимое файлов с BLOB-значениями.
Пример
При выполнении метода linDataSet::SaveChanges ("c:\\sqldata.sql") в случае наличия модифицированных данных в выборке могут быть созданы файлы sqldata.sql и sqldata_1_6.blb (если выборка содержит BLOB-данные). Содержимое SQL-файла будет примерно следующим: update "SYSTEM"."TEST" set "J"=222, "CH"=NULL, "VCH"='modified value1', "BL"=NULL where "I"=2; ! linCursor::PurgeBlob(4, NULL, NULL) ! linCursor::AddBlob(4, 10, 'c:\sqldata_1_6.blb', 4096, NULL, NULL) update "SYSTEM"."TEST" set "BL"=NULL where "I"=3; ! linCursor::PurgeBlob(1, NULL, NULL)