USE x.dbf IN 5 ALIAS y – у 5 робочій області біде відкрита база даних x.dbf, їй надається псевдонім у
Для того щоб одержати повідомлення про відкриту базу даних в заданій робочій області використовують функцію DBF([< робоча область>])
Наприклад: dbf (4) – функція поверне ім’я бази даних яка відкрита в 4 робочій області.
?dbf() – на екран виведеться ім’я бази даних, яка знаходиться в активній робочій область.
Щоб вивести результат на екран потрібно задати знак питання.
Зміна і модифікація структури бази даних здійснюється командою modifi structure. Копіювання структури бази даних задається команвдою copy structure to <ім’я файла>[fields<список полів>] – по заданій команді створюється порожня база даних з вказаним іменем. Структура копіюється з відкритої бази даних в активній робочій області. Якщо задано fields то в структуру будуть копіюватися лише поля зі списку.
Приклад: use a.dbf
Copy structure to g .dbf fields pr,im
в цьому фрагменті структура бази даних f.dbf копіюється в g .dbf при чому копіюються лише поля pr та im.
USE k.dbf
COPY STRUCTURE TO c.dbf - структура бази даних k.dbf копіюється в c.dbf
USE peta.dbf
COPY STRUCTURE TO lubchik.dbf FIELDS pr, im, rn – структура бази даних peta.dbf копіюється в базу даних ludchik.dbf , при чому копіюються лише поля pr, im та rn
USE u.dbf
COPY STRUCTURE TO r.dbf FIELDS st, bl – структура бази даних u.dbf копіюється в базу даних r.dbf , при чому копіюються лише поля st та bl
Зауваження: після виконання, команда copy... активною залишається стара база даних.
Редагування та перегляд баз даних
При роботі з базами даних часто виникає завдвння встановити вказівника на певний запис у базі даних, для цього використовують команду:
GO:GOTO [RECORD] N:TOP:BOTTOM[IN<робоча область>] – дана команда встановлює прихований вказівник на заданий запис взаданій робочій області, якщо робоча область не задана то береться до уваги активна робоча область.
Приклад: go record n встановлює вказівник на запис зномером
go n n
go top – вставляє прихований вказівник на початок бази даних
go bottom - вставляє прихований вказівник в кінець.
Для переміщення вказівника по базі даних використовують команду:
SKIP [<вираз n>] [IN<робоча область>]
Skip – переміщує вказівник на оидн запис в перед, якщо задано вираз n, та переміщує вказівник на n записів в сторону початку бази даних, якщо – n, а якщо +n то в сторону кінця бази даних. Для тог, щоб додати запис в базу даних використовують команди:
Append [blank]
Append – відображає вікно редагування для додавання записів в кінець активної бази даних
Append blank – добавляє в кінець активної бази даних
Insert [before ][blank]
Insert – вставляє запис після активного
Insert before - вставка запису перед активним
Blank - ставиться порожній запис
Приклад: GOTO 5
INSERT – вставка запису після 5 запису
GOTO 3
INSERT BEFOR BLANK – перед 3 записом вставиться порожній запис
GOTO 12
INSERT – вставка запису після 12
Вилучення записів з бази даних здійснюється командою:
Delete [<діапазон>] [For<умова>] - помічає на вилучення записи з заданого діапазону , що задовільняють умову, якщо задана команда Delete без параметрів, то помічаються на вилучення активні записи бази даних.
Приклад: GOTO 6
DELETE NEXT 6 FOR sb=10 - по даних командах встановлюється вказівник на 6 запис активної бази даних і помічаються на вилучення наступні 6 записів у яких середній бал рівний 10.
GOTO 3
DELETE NEXT 8 – по даних командах встановлюється вказівник на 3 запис активної бази даних і помічається на вилучення наступні 8 записів.
Go 9
DELETE REST – помічє на вилучення записи з 9 до кінця бази даних.
Pack - вилучення помічених на вилучення записів
Zap - вилучення всіх записів активної бази даних
Recal [<діапазон>] [For<умова>] [While<умова>] - розмарковує помічені на вилучення записи в активній базі даних заданого діапазону, що задовільняють умову, якщо параметрів не задано, то розмарковується активний запис.
Set Deleted On/Off - визначає можливість використовувати
помарковані записи в інших командах.
Replase [<діапазон>] <поле 1> with <вираз 1>[additive][<поле 2>]... [for<умова>] [while<умова1>] - по цій команді дані з поля 1 замінняються на вираз1 і т. д., при чому беруться записи з заданого діапазону, що задовільняють умові.
Additive - задається для полів типу memo, якщо дана опція задана інформація додається в кінць існуючої в полі memo, інакше попередня інформація витирається.
При редагуванні бази даних часто використовуються такі функції:
Recno([<робоча область>]) - повертає номер активного запису в заданій робочій області;
Deleted([<робоча область>]) - повертає значення true, якщо авктивний запис в базі даних в заданій робочій області помічений на вилучення;
Для перегляду бази даних використовується команда List та Display.
List[Off] [<діапазон>] [[Fields]<список полів>] [For <умова>] [While<умова>] [To print:to file<ім’я файла>] – по даній команді здійснюється перегляд записів активної бази даних. Якщо задано діапазон, то переглядаються лише записи з вказаного діапазону. З допомогою опції Fields можна відібрати поля для перегляду. For і While задають умови які записи потрібно переглядати. По замовчуванню інформація виводиться на екран, якщо задано To print,то вивід буде на принтер, якщо To file<...> - у файл з заданим іменем. Якщо задано Off, то будуть відключатися номера записів встановлені системою.
Команда List має багато різних видів для перегляду різної інформації. Розглянемо деякі з них:
List structure [To print:To file<Ім’я файла>] – перегляд структури бази даних.
List files [on<диск>:<директорія>] [Like<шаблон>] – по даній команді здійснюється перегляд файлів в вказаному місці диску, які задовільняють шаблону.
List memory[to print : to file<файл>] [Like<шаблон>] – перегляд змінних пам’яті згідно шаблону.
Приклад: LIST – перегляд записів активної бази даних .
List for st=’жіноча’ – на екран виводить всі записи у яких поле st дорівнює жіноча.
У всіх варіантах команди List слово List можна замінити на Display.
Змінні. Масиви. Фільтри.
Якщо в багатьох командах використовується одна і таж умова. То щоб уникнути повторень в командах використовується фільтри на записи всієї бази даних:
Set filter to <умова>.
Якщо потрібно виключити фільтр задається команда:
Set filter to
В ряді випадків виникає потреба встановлювати фільтр на поля бази даних, тобто щоб в активній базі даних оброблялися лише вказані поля:
Set fields to <список полів>.
Якщо задано Set fields to – фільтр виключається.
При виникненні потреби роботи з масивами використовуються такі команди:
Dimension : Declare <ім’я масиву 1>(<вираз N1>[,<вираз N2 >]) [, <ім’я масиву 2>...] – визначення масивів, N1 та N2 це вирази числового типу, які вказують на розмірність одно чи двовимірних масивів. По замовчуванню елементи масиву ініціюються значенням Falshe. Елементи масивів можуть бути різних типів, тип елемента визначаєьбся значенням яке туди пересилається. До елементів масиву звернення здійснюється іменем масиву з індексами в круглих дужках.
Append from array<ім’я масиву> [For<вираз L>] – дана команда додає в кінець активної бази даних дані з заданого масиву що задовільняють умову.
Copy to array <ім’я масиву> [<діапазон>] [For<вираз L>] [While<вираз L1>] – по даній команді дані з активної бази даних пересилаються в масив.
У FoxPro наявні широкі можливості для роботи зі змінними. Присвоєння значення змінним задається по такій команді:
Store <вираз> to <список змінних>:<масив>.
Є можливість записувати змінні у файли змінних, командою:
Save to <ім’я файла> [All like : Except<маска>] – всі змінні які були створені на даний момент часу записуються у файл з розширенням .mem. Якщо потрібно записати у файл всі змінні які задовільняють умові, масці, то використовується команда All like<маска>. Якщо потрібно записати всі змінні крім вказаних у масці то задається All except<маска>.
Якщо потрібно відновити змінні з файла у пам’ять то використовується команда:
Restore from<файл>[Addive]. Якщо не вказано Addive, то змінні які існували до цього в пам’яті вилучаються.
Сортування та індексування баз даних.
Sort to <ім’я файла>On <ім’я поля 1> [/A] [/C] [/D] [, <ім’я поля 2>] [/A] [/C] [/D] [, ... ] [Ascending : Diskending] [<діапазон>] [For<умова>] [While <умова 1>] [Fields <список полів>] [Nooptimize] – сортує в активному файлі даних, і записує йього в файл даних під вказаним іменем по полях 1,2,3...
/A – по зростанню;
/D – по спаданню;
/C – ігноруються малі і великі літери.
Може бути вказано /AC – у відсортований файл відбираються записи які задовільняють умові і поля із вказаног списку. Якщо є слова Ascending : Discending, то типи сортування (по зростанню чи спаданню) відноситься до всіх полів для яких не були вказані типи /A, /D.
Приклад: SORT TO a ON pr/a – сортування поля pr активної бази даних по зростанню, і запис відсортованої бази даних в базу даних з іменем а.dbf.
SORT TO b ON im/D – сортування іm активної бази даних по спаданню.
SORT TO с ON sb/a – сортування sb активної бази даних по зростанню.
Index On <вираз> To <IDX-файл>/Tag<ім’я тега> [Of<CDX-файл>] [For<умова>] [Compact] [Discending] [Unique] [Additive] – використовується для створення індексного файлу для текучої бази даних.
Індексний файл складається з списку номерів записів у тому порядку в якому база даних була б відсортована. Фізичний порядок записів в базі даних не змінюється.
У FoxPro можна створити два типи індексних файлів:
1 Звичайний – з розширенням .IDX і мають один індексний ключ.
2 Мультиіндексний – файли з розширенням .CDX.
Мультиіндексні файли є двох типів : структурний з іменем яке співпадає зіменем бази даних, і файлу з довільним іменем.
Струтурний завжди відкривається з файлом даних і його не можна закрити, але можна зробити не основним.
Discending – якщо не вказано, то індексування відбувається по зростанню;
Unique – якщо в полі по якому відбувається індексування є однакові значення то буде лише один запис;
Additive – створений індексний файл не закриває відкритих до цього індексних файлів. По замовчуванню всі індексні файли відкриті раніше закриваються.