Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lr1.doc
Скачиваний:
1
Добавлен:
14.11.2019
Размер:
2.85 Mб
Скачать
  1. Заповнення таблиці даними

Пiсля створення структури таблиця залишається вiдкритою (активною), тобто доступною для вводу, редагування та перегляду.

Якщо таблиця була створена ранiше то для роботи з нею її потрiбно вiдкрити:

USE [<iм'я файлу>]

[ ] – вказують на необв’язковий параметр команди. Команда USE без iменi файлу закриває активну таблицю.

Закрити усі таблиці БД та пов'язані з ними файли : iндекси, формати можна за допомогою команди:

CLOSE DATABASE

Закрити взагалi усі відкриті файли формати можна за допомогою команди:

CLOSE ALL

Доповнення записiв у таблицю

До активної таблиці можна доповнити нові записи:

  1. за допомогою команд FoxPro:

APPEND [BLANK]

- активізує режим доповнення даних до таблиці у вікні редагування даних. Пiсля вводу поточного запису автоматично з'являється доступ до наступного запису

BLANK – додає новий запис до таблиці, але не відкриває вікно для заповнення запису.

APPEND FROM <iм'я файлу> [FOR <умова>] [TYPE <тип файлу>] ...

- додає до вiдкритого файлу дані з iншого файлу.

Приклад:

USE Student

APPEND FROM Abiturient FOR pr_zarah=.t.

  1. за допомогою команд SQL у FoxPro (більш детально ці команди буде розглянуто пізніше):

INSERT INTO <dbf-файл> [ (<iм'я поля> [, <iм'я поля2>, ...]) ]

VALUES (<вир.> [, <вир.>, ...] )

– доповнює вказаний dbf –файл новим записом із можливим заповненням даних у вказані поля. VALUES вказує значення стовпчиків нового запису. Якщо не потрібно заповнювати всі поля нового запису, то у фразі INSERT після імені таблиці вказується список полів, які заповнюються значеннями, заданими у VALUES. Якщо імена полів опущені, то вказані вирази будуть записуватися послідовно в поля таблиці відповідно до її структури.

Наприклад:

INSERT INTO Student (Fam, Name, Grupa, Kurs) VALUES (‘Сидоров’, ‘Ілля’, ‘AM-11’, 1)

У FoxPro є ще одна форма використання цієї команди:

INSERT INTO < ім`я таблиці > FROM ARRAY <масив> | FROM MEMVAR

- у таблицю переносяться змінні з указаного масиву, або дані з MEMO-змінних.

  1. за допомогою меню FoxPro:

Table | Append New Record

Table | Append Records

  1. Редагування даних у таблиці

Існують команди, яккі дозволяють редагувати дані, які були записані до таблиці раніше. Це команди FoxPro BROWSE, EDIT, CHANGE - редагування активної таблиці у окремому вікні редагування даних та команди REPLACE і UPDATE (команда SQL FoxPro), які дозволяють змінити дані у конкретних записах без перегляду даних у окремому вікні редагування даних.

  1. команда BROWSE надає всі, або тільки вказані, дані активної таблиці для редагування у окремому вікні. Дані подаються у вигляді таблиці.

BROWSE [FIELDS <поля>]

[FOR <умова>]

[TITLE <вираз>]

[FREEZE <поле>]

[NOAPPEND]

[NODELETE]

[NOEDIT]

[WINDOW <вiкно>]

[COLOR SHEME <вираз> / COLOR <список параметрiв пар кольорів>]

...

де

FIELDS <поля> - вказує список полів, які виводяться для редагування. За змовчанням розглядаються усi поля таблиці;

FOR <умова> - для редагування виводяться записи, які задовольняють умову;

TITLE <вираз> - задає назву вікна редагування даних;

FREEZE <поле> - дозволяє редагувати тільки вказане поле, інші поля можна тільки читати;

NOAPPEND - не дозволяє доповнювати дані до таблиці під час даного режиму редагування;

NODELETE - не дозволяє видаляти дані з таблиці під час даного режиму редагування;

NOEDIT - не дозволяє редагувати дані таблиці під час даного режиму редагування;

WINDOW <вiкно> - дані для редагування виводяться у вказаному вікні;

COLOR SHEME <вираз> - задається одна із існуючих схем кольорів для вікна редагування даних.

Ця команда має ще багато параметрів, які ми розглядати не будемо.

Приклад:

USE Student

BROWSE FIELDS Fam, Name FOR Kurs = 1 TITLE 'Список студентів 1 курсу'

Розглянемо більш детально опцію FIELDS <список полiв>. Iм'я кожного поля може супроводжуватись ключами:

[:R]

[:<вир.N>]

[:V=<вир.L1> [:F] [:E = <вир.C1>]]

[:P=<вир.C2>]

[:H=<вир.C3>]

[:B=<вир.1> <вир.2> [:F]]

[:W=<вир.L2>]

Символ ':' може бути замiнений на '/', якщо '/' не буде визначатися як арифметична дiя у <вир.N>. Значення ключiв:

:R - Read – Only, поле доступне тільки для перегляду даних.

:<вир.N> - видимий розмiр поля. Дозволяється скролiнг.

:V - контроль виходу з поля.

Якщо <вир.L1>=.T. , то ввод правильний,

якщо <вир.L1>=.F. , => "Invalid input" (неправильний ввод)

можна замiнити на iнше в :E

:F - перевiрка не тiльки даних, що вводяться, а й вже iснуючих даних.

:P - задання формату вiдображення даних за допомогою шаблону Picture.

:H - вказiвка власного заголовка поля.

:B - вказiвка границь чисел та дат. Дозволяється вказати тiльки одну межу, але ',' - обов'язкова. :F - пiдсилює команду.

:W - контроль входу в поле. Вхiд в поле дозволено, якщо <вир.L2> = .T. i заборонено, якщо = .F.

У <список полiв> дозволено включати поля, якi є функцiями iнших полiв, змiнних, i т.д.

Приклад: pom = 0.7*det*star

Під час роботи можна вiдкрити до 25 BROWSE-вiкон. З допомогою команди BROWSE можна переглядати поля з рiзних таблиць.

  1. ще двi команди редагування: EDIT / CHANGE працюють аналогічно BROWSE, але дані подаються не у вигляді таблиці, а у режимі перегляду, аналогічному APPEND.

EDIT [<дiапазон>] [FIELDS <спис. полiв>] [WHILE <умова>] [FOR <умова>] ...

Приклад:

EDIT ALL FOR kod>100

При роботi в режимi доповнення (APPEND) або редагування (BROWSE / EDIT / CHANGE) у системному меню FOXPRO з'являєься додаткова опцiя Table, яка має такі режими:

Append New Record (Ctrl+N) - додати запис

Append Records – доповнити записи до активної таблиці, дані брати з іншого файлу

Toggle Deletion Mark (Ctrl+T) - відмітити запис для видалення

Delete Records – видалити записи за вказаною умовою

Go To Record – перейти до вказаного запису

та ін.

  1. команда REPLACE заміняє дані поточного (активного) запису активної таблиці у вказаних полях на нові значення

REPLACE <поле> WITH <значення> [ADDITIVE]

[,<поле2> WITH <значення2> [ADDITIVE]] ...

[<діапазон>] [FOR <умова>] [WHILE <умова2>]

[IN <робоча область> | <псевдонім таблиці>]

[NOOPTIMIZE]

де:

ADDITIVE – використовується для memo-полів. Дані у memo-поле будуть дописані у кінець тексту, а не замінені.

<діапазон> - дозволяє замінити дані не тільки у поточному записі, а у записах вказаного діапазону. Для визначення діапазону використовуються такі параметри:

ALL – всі записи, NEXT <n записів>, RECORD <номер запису>, REST. За змовчанням у якості діапазону використовується NEXT 1.

FOR <умова> - корегуються дані тільки у записах для яких виконується <умова>

WHILE <умова> - корегуються дані тільки у послідовних записах доки виконується <умова>

IN <робоча область> | <псевдонім таблиці> - дані корегуються у таблиці, яка знаходиться у вказаній робочій області або має вказаний псевдонім (детально ці поняття будуть розглянуті пузніше у розділі «Робота з декількома таблицями», лаб. роб. №3 та №5)

NOOPTIMIZE – не проводити перевірку коректності БД при зміні даних (детально ці поняття будуть розглянуті пізніше у розділі «Робота з БД», лаб. роб. №3 або дивись команду SET OPTIMIZE у Developer’s Guide)

Приклад використання команди:

USE Student

APPEND BLANK

REPLACE Fam WITH ‘Сидоров’, Name ‘Ілля’, Grupa WITH ‘AM-11’, Kurs WITH 1

або

REPLACE ALL Kurs WITH Kurs+1

  1. за допомогою команди UPDATE (комонда SQL у FoxPro) можна змінювати деякі або всі значення в існуючій таблиці. Синтаксис команди такий:

UPDATE <ім`я таблиці> SET <поле> = <значення> [, <поле> = <значення>...] [WHERE <умова>]

SET вказує, які заміни потрібно виконати для вказаного стовпчика (стовпчиків).

На відміну від попередньої команди ця команда за змовчанням змінює всі записи у таблиці, а параметр WHERE <умова> дозволяє змінити дані тільки у записах, які задовольняють вказану умову.

Наприклад:

UPDATE Student SET Kurs=3 WHERE Grupa=’АВ-11’

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]