Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ.docx
Скачиваний:
11
Добавлен:
06.08.2019
Размер:
163.01 Кб
Скачать

Добавление и изменение значений полей

Команда APPEND BLANK

Добавляет пустую запись в текущую таблицу.

 

Команда REPLACE поле1 WITH знач1поле2 WITH знач2 ...

Заполняет поля: поле1поле2 ... значениями знач1знач2 ...

 

Примеры:

 

1. Откройте окно Data Session, установите активной таблицей таблицу sotr. В командном окне выполните команду BROWSE – после этого должно открыться окно BROWSE – просмотра, оно должно быть пустым.

2. Не закрывая окно просмотра, перейдите  в командное окно и выдайте команду APPEND BLANK. Перейдите в BROWSE - окно - там должна появиться пустая строка.

3. Снова перейдите в командное окно и выполните команду:

REPLACE  name WITH 'Плятт', addr WITH 'Цветочная улица', city WITH 'Берн'

4. После этого поля в BROWSE – окне должны заполниться соответствующими значениями. Поля в таблице, если она просматривается в BROWSE – окне, можно редактировать и непосредственно.

5. Добавлять новые записи в таблицу можно и интерактивно – комбинацией клавиш Ctrl+Y. Добавьте в таблицу 6 – 10 записей. Закройте окно просмотра. Перейдите в командное окно и командой

? name, addr

выведите на экран текущее значение имени и адреса.

Команды для удаления записей.

Процесс удаления записей из таблицы во всех СУБД состоит из двух этапов. Сначала записи помечаются на удаление, а уже потом - физически удаляются из файлов - таблиц. Это делается для экономии времени, поскольку физическое удаление записей из таблицы может занимать существенное время, если таблица достаточно велика.

Для того, чтобы пометить запись на удаление используется команда DELETE. При выполнении команды DELETE в BROWSE - окне, слева от текущей записи появится маркер (метка) удаленной записи. Кстати, пометить запись на удаление можно интерактивно: либо мышью - щелкнув мышью на месте для маркера удаления или - комбинацией клавиш - Ctrl+T. Снять пометку на удаление можно так же мышью или Ctrl+T либо командой RECALL.

Команды DELETE и RECALL, как и многие другие команды FoxPro, являются командами, которые могут работать с диапазонами записей. Область действия таких команд может состоять из двух частей: из ключевого слова указывающего диапазон и логического условия, которое стоит после слова FOR и представляет собой логическое выражение.

Примеры:

 

DELETE ALL FOR oklad=0

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

 

Команда RECALL отменит пометку на удаление у текущей записи, команда RECALL ALL отменит пометку на удаление всех записей.

 

Физически удалить записи, помеченные на удаление можно командой PACK, для выполнения этого действия необходимо открыть таблицу в режиме монопольного доступа.

Перемещение по таблице

Для перемещения по таблице используются команды абсолютного и относительного перемещения.

Абсолютное перемещение:

Команда GO N_записи помещает указатель записи на запись номер N_записи.

Например:

GO 3 – переместит указатель на запись номер 3.

Это можно проверить, просматривая таблицу в BROWSE окне.

GO TOP - перемещает указатель на начало таблицы, а GO BOTTOM - в конец таблицы. Для того, чтобы узнать находится ли указатель записи в начале или в конце файла используются функции BOF(), EOF(). Если указатель находится в начале файла, то функция BOF() вернет значение истина – .T. Если указатель находится в конце файла, то значение истина возвратит функция EOF().

Например:

GO TOP

? BOF()

выдаст значение .T.

? EOF()

вернет значение .F.

Команды:

GO BOTTOM

? BOF()

выдаст значение .F.

? EOF()

вернет значение .T.

Как правило, функции BOF(), EOF() используются в условиях блочных операторов IF…ENDIF.

 

Номер текущей записи можно получить, используя функцию - RECNO():

Так команды:

GO 3

? RECNO()

дадут результат: 3

 

GO TOP

? RECNO()

вернет результат: 1

 

Общее количество записей в таблице можно получить, используя функцию REСCOUNT()

Пусть в текущей таблице 5 записей, тогда команды:

n=reccount()

возвращает в переменную n текущее количество записей

?n

выводит на экран 5

?eof()

выведет .F., а

?recno()

вернет номер последней записи, т.е. 5.