Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет1_FoxPro_2011.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
414.21 Кб
Скачать

6. Обробка записів бази даних

FoxPro має можливість замінювати дані не тільки вручну, а також шляхом присвоєння або обчислення використовуючи команду:

REPLACE [< область дії >] [WHILE < умова >] [ FOR < умова >]

< поле 1> WITH < вираз> [, < поле 2 > WITH < вираз>…]

[ADDITIVE] [NOOPTIMIZE]

Ця команди здійснює багаторазову заміну полів БД у відповідності з заданими виразами, в заданій області і при заданих умовах. Команда REPLACE без параметрів здійснює заміну тільки поточного запису. Параметр ADDITIVE діє тільки для мемо-полів.

Команда заносить в < поля > активної БД результати обчислення виразів, заданих фразою WITH, для всіх записів із < області дії >, для яких виконується < умова > .

Область дії може визначатись такими параметрами:

ALL- всі записи БД;

REST- залишок записів БД, починаючи з поточного;

NEXT N – N наступних записів, включаючи поточний запис;

RECORD N - конкретний запис з номером N.

< Поля > задаються іменами полів активного файлу БД. Наприклад, GRAF.

<Вираз> - це будь-який вираз, який може складатись із констант, змінних, полів і функцій, зв’язаних знаками арифметичних операцій. Наприклад, GRAF1+ GRAF2.

Команда REPLASE, це основна робоча команда, що забезпечує обчислення різних показників, для яких виділяються окремі поля бази даних.

Наприклад, використовуючи команду REPLASE обчислити сумарний рейтинг кожного студента поле SUMBAL бази даних RETING.DBF.Для цього поле GRAF треба попередньо вставити в БД використовуючи команду MODIFY STRUCTURE. Програмний файл має вигляд:

*-----------------------------------------RET.PRG--------------------------------------------*

* програма обчислення показників *

* поля SUMBAL файлу БД RETING.DBF *

*-------------------------------------------------------------------------------------------------*

SET TALK OFF

USE RETING && відкриття БД RETING.DBF

REPLASE ALL SUMBAL WITH BM1+BM2+BMISP+INF1+INF2+GRAF1+; GRAF2

GO TOP && перехід до 1-го запису

BROWSE NOEDIT && перегляд БД без редагування

SET TALK ON

*------------------------------------КІНЕЦЬ RET.PRG-------------------------------------*

Р ис.6.1.

Обчислення кількості полів та записів в БД

Визначити та вивести на екран кількість полів та записів в базi даних SPISOK.DBF . Для визначення кількості полів використати функцію FCOUNT, а записів – функцію RECCOUNT.

USE SPISOK

?” Кількість полів в базі даних SPISOK:”, FCOUNT ()

&& (виведення на екран кількості полів в базі даних SPISOK)

Кількість полів в базі даних SPISOK: 6

?”Кількість записів в базі даних SPISOK:”, RECCOUNT () && (виведення на екран кількості полів в базі даних SPISOK)

Кількість записів в базі даних SPISOK: 20

Підрахування числа записів за певною умовою

Для підрахування числа записів за певною умовою використовується команда COUNT:

COUNT [<область дії> ] [FOR/WHILE <умова> ]

[TO <змінна> ]

Команда підраховує кількість записів активної БД, які задовольняють <умову>, задану фразою FOR або WHILE, крім записів, позначених на вилучення (за замовчуванням діє установа SET DELETE ON). Якщо в загальне число треба включити також записи, помічені на вилучення, то треба установити SET DELETE OFF.

Використання фрази TO <змінна> надає можливість запам’ятати одержаний результат за допомогою указаної тимчасової змінної.

Приклади запису команди COUNT

COUNT TO KZAP - підраховує загальну кількість записів і результат заносить в змінну KZAP.

COUNT ALL FOR NGRUP=”EN-1-3”- підраховує число студентів групи EN-1-3.