Распечатать страницу

Автономные виды в Microsoft Visual FoxPro

« Назад

Автономными называются виды, не передающие изменения источнику данных.

После работы с автономным видом, внесенные в него изменения можно доставить источнику данных, выполнив USE с опцией ONLINE, а затем вызвав TABLEUPDATE( ).

Функция

CREATEOFFLINE(cViewName [, cPath])

делает существующий вид автономным. Возвращает .T., если вид удалось сделать автономным, или .F. – в противном случае.

Параметры:

cViewName – имя существующего вида, переводимого в автономный режим. База данных, содержащая этот вид, должна быть открыта.

cPath – директория, в которую помещается автономный вид, и его имя.

Автономный вид открывается командой USE. После того как вид открыт, в него можно добавлять записи и выполнять их редактирование. С ним, однако, нельзя применять команды CREATE TRIGGER, INSERT, PACK и ZAP. После выполнения изменений данные на сервере будут обновлены, если автономный вид открыть командой USE с опцией ONLINE и вызвать TABLEUPDATE( ).

Нельзя обновить содержимое автономного вида данными сервера до тех пор, пока вид не открыт командой USE с опцией ONLINE.

Пример:

close databases

open database d:\HomeLibrary\HomeLibrary

&&

&& Переводим вид SomeLocalView в автономный режим

CreateOFFLine('SomeLocalView', 'd:\SomeOFFLineView')

&& При работе с видами применяется буферизация,

&& поэтому SET MULTILOCKS нужно установить в ON

set multilocks on

use d:\SomeOFFLineView

&& Внесем изменения в автономный вид

browse last

&&

&& Откроем автономный вид для обновления источника данных

use d:\SomeOFFLineView online

&&

&& Обновляем таблицы источника данных

TableUpdate(1)

&& Закрываем автономный вид d:\SomeOFFLineView

use

&& Переводим вид SomeLocalView базы данных HomeLibrary в неавтономный режим

DropOFFLine('SomeLocalView')

Функция

DROPOFFLINE(cViewName)

игнорирует все изменения, выполненные в автономном виде, и переводит вид cViewName в неавтономный режим. Возвращает .T., если вид удалось сделать неавтономным, или .F. – в противном случае.