
- •В. П. Агальцов
- •Москва «мир» 2002
- •Примеры
- •Примеры
- •Контрольные вопросы
- •Глава 1
- •Третий этап проектирования базы данных: задание первичных и альтернативных ключей
- •Глава 2
- •2 8.2. Освобождение таблицы
- •Index — закрывает все индексные файлы в текущей рабочей об- асги, за исключением структурного мультииндексного файла.
- •Контрольные вопросы
- •Глава 3
- •Удаление тега из мультииндексного файла
- •Вывод на экран имен индексных файлов и имен тегов
- •Примеры
- •If !empty(tag(nCount)) && Проверка наличия тегоз
- •Контрольные вопросы
- •Как удалить тег из мультииндексного файла?
- •Укажите команды для вывода на экран имен индексных файлов и имен индексов (тегов) внутри индексного файла.
- •Глава 4
- •Часто употребляемые опции команд foxpro
- •Сортировка данных
- •4.1. Поиск данных с помощью Главного меню.
- •Фильтрация данных
- •4.5. Примеры
- •4.6. Контрольные вопросы
- •Глава 5
- •Понятие рабочей области
- •Организация взаимосвязи «один-к-одному»
- •Установление взаимосвязи «один-ко-многим»
- •Установление взаимосвязей с помощью главного меню
- •Объединение двух табличных файлов в один файл
- •Корректировка данных в связанных таблицах
- •Создание итогового табличного файла
- •Примеры
- •Контрольные вопросы
- •Глава 6
- •Создание программного файла
- •Запуск программного файла
- •Ignore — продолжить выполнение программы.
- •Модульность программ
- •Область действия переменных
- •Простейшие вычисления
- •Примеры
- •Контрольные вопросы
- •Присвоение значений
- •Команды для работы с переменными
- •Команды для работы с массивами
- •Команды ввода-вывода
- •Функции для работы с массивами
- •Команды циклов
- •Команды ветвления алгоритма
- •Команда ветвления алгоритма на много направлений
- •Примеры
- •9 15, 2 && Задает место на экране
- •Контрольные вопросы
- •Команда создания и отображения меню на экране
- •Команда фиксации выбора пользователя
- •Примеры
- •0 12.32 Prompt 'Выход' message 'Завершение программы' menu то peri
- •ScSc Вывод в специальное окно системного сообщения
- •Контрольные вопросы
- •Какими командами клавишного меню фиксируются ошибки работы программы?
- •Что такое стек? Как сохраняются и как извлекаются клавишные команды из стека?
- •Укажите команды для обработки кодов нажатых клавиш.
- •Примеры
- •0 10.2 Say 'Тигры'
- •0 12.2 Say 'Котята'
- •13. Контрольные вопросы
- •Примеры
- •0 8,40 Say 'Волга'
- •If messagebox('Фамилия не найдена',;
- •If messagebox{'Имя не найдено',;
- •Контрольные вопросы
- •Глава 11
- •Примеры
- •Insert into Fam values(101, 'Байрон')
- •Контрольные вопросы
- •Вычисление абсолютного значения
- •If eof('Catalog') && Определение конца таблицы
- •Recall all ь& Со всех записей таблицы Author снять пометку к удалению
- •Определение конца файла
- •2000 Году: ' ;
- •Определение количества полей в открытой базе данных
- •Поиск значения поля по значению другого поля
- •&& Возвращает ega/Color
- •Определение общего объема оперативной памяти
- •7 ?Aykent(100000,0.1,2) && выводит на экран 56719.05
- •2 Кинуты.
- •Примеры
- •Контрольные вопросы
- •140010, Г , 1юберцы Московской обл.. Октябрьский пр-т. 403. Тс- 554-21-86
- •0 11,10 Prompt 'с начала'
- •1 Строки
Контрольные вопросы
БАЗЫ ДАННЫХ 2
Оглавление 4
От автора 6
Справочник команд, операторов и функций 9
... 114
... | 156
I 207
Литература 364
От автора
Предлагаемое вашему вниманию учебное пособие «Базы данных» имеет своей целью научить создавать приложения локальных баз данных. Поскольку учебное пособие рассчитано на подготовку программистов-профессионалов, то основное внимание уделено написанию программных кодов, а затем показано, как выполняются те же самые действия с использованием средств быстрой разработки программ. Написание программных кодов знакомит студентов с теми механизмами, которые заложены в отдельные элементы средств быстрой разработки. Это способствует глубокому пониманию излагаемого материала и ориентирует студентов на создание собственных оригинальных элементов интерфейса, обладающих уникальными свойствами.
В конечном счете, при создании приложения баз данных для конкретного предприятия, студент будет в состоянии разработать ясный и простой в управлении интерфейс, который учитывает все пожелания заказчика за счет гибкого применения стандартных и собственных уникальных элементов интерфейса.
Учебное пособие «Базы данных» состоит из тринадцати глав. Первая глава «Теория баз данных» посвящена ихюжению основных понятий и общепринятых терминов, используемых при проектировании баз данных. Эта глава вводит читателя в круг проблем и показывает общую структуру локальных баз данных. Во второй главе «Работа с табличными файлами» рассмотрены вопросы создания, открытия, просмотра, редактирования и модификации табличных файлов. Третья глава «Индексирование
баз данных» посвящена вопросам создания и управления индексами. Индексы в проектировании баз данных занимают центральное место, поэтому текстовый материал снабжен большим количеством примеров, которые дополнены комментариями. Глава четвертая «Управление базами данных» содержит описание методов сортировки, поиска и фильтрации данных. Глава пятая «Установление взаимосвязей между таблицами» знакомит читателей с вопросами соединения отдельных таблиц в базу данных. В предыдущих главах были построены и сохранены отдельные таблицы. В этой главе показаны различные способы объединении таблиц и приведены примеры возможных объединений для решения конкретных задач. В шестой главе «Создание программных файлов» рассказывается о необходимости и приемах создания программных файлов. Приведены примеры создании программных файлов, один из которых в дальнейших главах будет дополняться до закошенною приложения. Седьмая глава «Основы языка программирования» посвящена операторам и конструкциям языка FoxPro. Многочисленные примеры в конце главы отражают использование практически всех операторов языка FoxPro. Глава восьмая «Создание меню» раскрывает вопросы создания пользовательских меню. В главе рассмотрены как световые, так и клавишные меню. Даны рекомендации по применению каждого вида меню, а также указаны их преимущества и недостатки. В главе девятой «Определение окон» рассмотрены вопросы построения пользовательских окон различной степени сложности. В примерах к главе показаны приемы управления окнами. Глава десятая «Псевдографика и элементы управления» содержит описание команд псевдографики, которые используются только при создании приложений, работающих под управлением MS DOS, и описание приемов создания элементов управления, которые работают как в среде MS DOS, так и в среде WINDOWS. Глава одиннадцатая «Структурированный язык запросов SQL» знакомит читателей с основными конструкциями структурированного языка запросов и показывает возможности создания и управления базами данных иным способом. В некоторых случаях проще применить конструкции структурированного языка, чем использовать традиционные способы управления базами данных. Глава двенадцатая «Функции СУБД» содержит описание функций языка FoxPro, не вошедших в предыдущие главы. Глава тринадцатая «Созда
ние отчетов» посвящена методам создания отчетов различных видов.
Учебный материал изложен в той последовательности, которая наиболее удобна при чтении лекций. Во всех главах, кроме первой, выполнение одного и того же действия показано разными способами, как правило, с помощью программных кодов или манипуляций в главном меню. Каждая глава снабжена примерами и упражнениями. Примеры подобраны таким образом, чтобы при последовательном их выполнении получилось законченное приложение.
Приведенные в учебном пособии примеры работают в среде программирования Visual FoxPro 6.0.
Учебное пособие «Базы данных» рассчитано на курс лекций но дисциплине «Базы данных» специальности 2203 «Программное обеспечение вычислительной техники и автоматизированных систем* общим объемом 100 часов, из которых 60 часов — теоретические занятия и 40 часов — практические занятия. Дли проведения лабораторных работ на компакт-диске представлены для каждой главы учебного пособия образцы программ.
Учебное пособие «Базы данных* написано в полном соответствии с примерной программой дисциплины «Базы данных», составителем которой и является автор [1].
Автор благодарит г-на Ульмана И. В. за тестирование примеров на компакт-диске и сделанные замечания и уточнения.
Автор будет благодарен читателям, которые пожелают прислать свои замечания и уточнения к тексту учебного пособия и прилагаемым программам по адресу редакции: 107996, ГСП-6, Москва, 1-й Рижский пер., 2 или по электронной почте info@mir-publishers.net; t_khokhlova@mtu-net.ru.
Учебное пособие «Базы данных* является первым в серии учебных пособий автора. В 2002 году выйдут в свет учебные пособия «Проектирование удаленных баз данных», «Компьютерно-телекоммуникационные сети» и «Архитектура ЭВМ*.
Принятые обозначения и сокращения
SEEK <выр.> — команда, оператор или функция языка программирования;
File -> Open — команда главного меню;
— выбор программиста. Выбирается опция (параметр) либо слева, либо справа от символа |;
[...] — необязательная опция ключевое слово или
параметр;
<выр. О — выражение символьного типа;
<выр. N> — выражение числового типа;
<выр. L> — выражение логического типа;
<выр. D> — выражение типа даты.
Справочник команд, операторов и функций
S (оператор). 301 U (оператор),
Л (команда), 339 && (команда), 341 * (оператор), 341 — (оператор), 131,341 ; (оператор), 341 I (команда), 333,154 ? (команда), 138 Tt (команда), 138 @ ... (команда), 139 ® ... BOX (команда), 231 © ... CLEAR (команда) 139 © ... FILL ТО (команда), 234 © ... MENU (команда), 173 ® ... SAY ... GET ... (команда), 139, 193,235 © ... ТО (команда), 232 © ... PROMPT (команда), 172 ABS0 (функция), 291 ACOPY0 (функция), 148 ACCEPT (команда), 195 ACTIVATE MENU (команда), 186 ACTIVATE POPUP (команда), 181 ACTIVATE WINDOW (команда), 220 ADD TABLE (команда), 64 АОЕЦ) (функция), 147 ADIRo (функция), 151
AELEMENT0($)>hk4Uj?), 147 AFIELDS0 (функция), 150 AlNSO (функция), 147 ALIASO (функция), 49 ALLTRIMO (функция). 305 APPEND (команда), 59 APPEND FROM (команда), 137 ASCO (функция), 314 ASCANO (функция), 149 ASINO (функция), 299 ASOKTO (функция), 149 ASUBSCRIPTO (функция), 146 ATO (функция), 301 ATAN0 (функция), 299 ATC0 (функция), 301 ATN20 (функция), 300 ATCLINE0 (функция), 308 ATLINEO (Ф>'нкция), 308 AVERAGE (команда), 125 AVGO (функция), 125 BAR0 (функция), 183 BETWEENO (функция), 292 BOFO (функция), 316 BROWSE (команда), 50,57 CALCULATE (команда), 125 CANCEL (команда), 121 CAPSLOCK0 (функция), 195 CDOWQ (функция), 312
CDXO (функция), 81 CEILING0 (функциях 292 CHANGE (команда), 57 &Щ) (функция), 315 СН RSAW 0 (функция), 195 CHRTRAN'O (функция), 305 CLEAR (команда), 139,173,175,192 CLEAR MACROS (команда), 193 CLEAR MENUS (команда), 188 CLEAR MEMORY (команда), 134 CLEAR POPUPS (команда), 182 CLEAR WINDOWS (команда), 221 CLOSE (команда), 67 CLOSE INDEX (команда), 78 CMONTH0 (функция), 312 CNTO (функция), 125 CNTBARO (функция), 183 CNTPADO (функция), 188 COLO (функция), 329 CONTINUE (команда), 90,321 COPY INDEXES (команда), 80 COPY TAG (команда), 80 COPY TO ARRAY (команда), 136 COSO (функция), 298 COUNT (команда), 126 CREATE (команда), 43 CREATE DATABASE (команда), 62 CREATE TABLE (команда), 47,277 CREATE TABLE (SQL-команда), 277 CTOD0 (функция), 312 CUPDIRO (функция), 327 DATEO (функция), 313 DAYO (функция), 313 DBFO (функция), 318 DEACTIVATE MENUS (команда) 187 DEACTIVATE POPUP (команда), 180.
181,182,183
DEACTIVATE WINDOW (команда), 221
DECLARE (команда), 131
DEFINE BAR (команда), 178
DEFINE MENU (команда), 184
DEFINE VAD (команда), 185
DEFINE POPUP (команда), 176,183
DEFINE WINDOW (команда), 218
DELETE (команда), 61
DELETE TAG (команда), 80
DELE 1 EDO (функция), 319
DIMENSION (команда), 131
DISKSPACEO (функция), 318
DISPI AY (команда), 66
DISPLAY MEMORY (команда), 133
DMY0 (функция), 313
DO CASK (команда), 154,171,174.175
DO (команда), 118.120,122
DO W1П LE (команда), 152
DOW0 (функция) 313
DTOC0 (функция), 313
EDIT (команда), 57
EMFTY0 (функция), 336
EOF0 (функция), 319
EVALUATE0 (функция), 340
ЕХГГ (команда), 152
EXPO (функция), 297
FCOUNT0 (функция), 322
FIELD0 (функция), 320
FI LEO (функция), 320
F1LTF.R0 (функция), 322
FIND (команда), 90
FKMAX0 (функция), 331
FLOORO (фунты), 292
FOR (команда), 152
FOUND0 (функция), 321
FREE TABLE (команда), 65
FUNCTION (команда), 122 f\Q (функция), 338 GATHER FROM (команда), 91353 GO (команда), 155 GOTO (команда), 155 GOMONTH0 (функция), 314 HEADKR0 (функция), 326 HIDE MENU (команда), 123,188 HIDE POPUP (команда), 182 HOUR0 (функция), 335 IF (команда), 154 WQ (функция), 336 INDEX (команда), 74 INKEY0 (функция), 193,194 E4LIST0 (функция), 302 INPUT (команда), 195 INSERT (SQL-команда), 279 INTO (функция), 293 ISALPHA0 (функция), 310 1SCOLOR0 (функция), 334 ISDIGTT0 (функция), 303 ISLOWER0 (функция), 311 ISNULL0 (функция), 311 ISUPPER0 (функция), 311 JOIN (команда), 104 KEYBOARD0 (функция), 194 1ASTKEY 0 (функция), 194 LEFT0 (функция), 304 LENO (функция), 303 LIKE (оператор), 304 LIST (команда), 66,319 LOCATE (команда), 89,321 LOGO (функция), 297 LOG 100 (функция), 297 LOOKUP0 (Функция), 323 LOOP (команда), 152
IOWER0 (функция), 311 LTR1 МО (функция), 305 LUPDATE0 (функция), 323 M.AX0 (функиия), 125,293 MCOL0 (функция), 330 MDOWN0 (функция), 330 MDX0 (Функция), 81 \\ESU (команда), 114,174 MENU BAR (команда), 174,175 MENU ТО (команда), 172 MENU0 (функция), 188 MIN0 (функция), 125,294 MINLTE0 (Функция), 335 MUNE0 (функция), 310 MEMLINESO^wkkwi;, 310 MEMORY0 (функция), 333 MOD0 (функция), 294 MODIFY COMMAND (команда), 116 MODIFY STRUCTURE (команда), 62 MONTH0 (функция), 314 MOVE POPUP (команда), 183 MOVE WINDOW (команда), 221 M RKBAR0 (функция), 184 MRKPAD0 (функция), 189 MROW'0 (функция), 330 MTON0 (функция), 316 NEXT (команда), 152 NDX0 (функция), 81 NPV0 (функция), 126 OCCURS0 (функция), 304 OUQ (функция), 195 ON BAR (команда), 180 ON ERROR (команда), 190 ON ESCAPE (команда), 190 ON KEY (команда), 191 ON KEY LABEL (команда), 191,192
ON READERKOR (команда), 190 ON PAD (команда), 187 ON SELECTION BAR (команда), 180 ON SELECTION MENU (команда), 187 ON SELECTION PAD (команда), 187 ON SELECTION POPUP (команда), 179 ORDER0 (функция), 324 PACK (команда), 61 PADO (функция), П6,123,188 PADCO (функция), 308 PADLO (функция), 308 PADRO (функция), 308 PARAMETERS (команда), 120 PAYMENT0 (функция), 337 PCOL0 (функция), 329 PI0 (функция), 300 POP KEY (команда), 192 POPUP0 (функция), 183 PRINISTATUSO (функция), 333 PRIVATE (команда), 123 PROCEDURE (команда), 120 PROMPT0 (функция), 183 PROPERO (функция), 311 PROW0 (функция), 329 PUBLIC (каманОа), 123 PUSH KEY (команда), 191.192 PV0 (функция), 338 QUIT (команда), 122 RAND0 (функция), 295 RATO (функция), 302 RATLINE0 (функция), 309 READ (команда), 144,235 READ MENU (команда), 173 READ MENU BAR (команда), 175 READKEY0 (функция), 194 RECCOUNT0 (функция), 126,325
RECNO0 (функция), 324 RECSIZEO (функция), 326 REINDEX (команда), 79 RELEASE (команда), 134 RELEASE BAR (команда), 182 RELEASE MENUS (команда), 188 RELEASE PAD (команда), 188 RELEASE POPLPS (команда), 182 RELEASE WINDOWS (команда), 221 REMOVE TABLE (команда), 65 RENTRY (команда), 121 REPLACE (команда), 58,105 REPLICATEO (функция), 306 RESTORE FROM (команда), 133 RESTORE WINDOW (команда), 222 RETURN (команда), 121,182 RIGHTO (функция), 305 ROUND0 (функция), 295 ROW'0 (функция), 329 RTOD0 (функция), 300 RTREVI0 (функция), 305 RUN (команда), 154, 333 SAVE JO (команда), 132 SAVE WINDOW (команда), 222 SCAN (команда), 153 SCATTER (команда), 134 SCHEME0 (функция), 334 SCOLS0 (функция), 223 SCROLL (команда), 135 SEC0 (функция), 335 SECONDS0 (функция). 335 SEEK (команда), 90,321324 SEEK() (функция), 326 SELECT (команда), 98 SELECT (SQL-команда), 280 SET0 (функция), 332
SET ALTERNATE (команда), 332 SET BELL (команда), 69,235 SET BLINK (команда), 234 SET BORDER TO (команда), 232 SET CENTURY (команда), 68,313 SET COLOR TO (команда), 233,234 SET CONFIRM (команда), 69,170,171 SET DATE (команда), 68 SET DECIMALS (команда), 300 SET DEFAULT (команда), 68 SET DELETED (команда), 126 SET ESCAPE (команда), 118,119,191 SET FIELDS TO (команда), 92 SET FILTER TO (команда), 92 SET FIXED (команда), 300 SET FUNCTION (команда), 192,193 SET FORMAT TO (команда), 53 SET INDEX (команда), 78 SET MESSAGE (команда), 172, 173, 174
SET ORDER (команда), 79 SET PATH (команда), 68 SET PROCEDURE (команда), 119 SET RELATION (команда), 99 SET RELATIONS (команда), 99 SET RESOURCE (команда), 55 SET SAFETY (команда), 133 SET SKlP/fcawoM&J, 100 SET SKIP OF (команда), 189 SET STATUS (команда), 68 SET TALK (команда), 69,170 SCHEME0 (функция), 235 SHOW MENU (команда), 186 SHOW POPUP (команда), 181 SHOW WINDOW (команда), 220 SIGN'O (функция), 296
SISO (функция), 298 SORT (команда), 88 SQRT0 (функция), 298 SPACEO (функция), 306 SROWS0 (функция), 224 STORE (команда), 131 STD0 (функция), 126 STR0 (функция), 315 STRTRAN0 (функция), 307 STUFF0 (функция), 306 SUBSTR0 (функция), 305 SUM (команда), 124 SUMO (функция). 126 SYS(2) (функция), 335 SYS(5) (функция), 328 SYS(12) (функция), 333 SYS(13)№vw4i«A333 SYS(16) (функция), 334 SYS(17) (функция), 332 SYS(i8) (функция), 331 SYS<1001) (функция). 334 SYS(2002) (функция), 332 SYS(2003) (функция), 328 SYS(2004) (функция), 328 SYS(2006) (функция), 332 TAG0 (функция), 81 TAN0 (функция), 299 TIME0 (функция), 335 TOTAL (команда), 106 TRANSFORM0 (функция), 307 TYPE0 (функция), 337 L PDATE (команда), 105 UPDATEO (функция), 327 UPDATE (SQL-команда), 280 UPPER0 (функция), 312 USE (команда), 47,48
VAL0 (функция), 316 VARO (функция), 126 VARRKADO (функция), 196,331 VERSION0 (функция), 334 WCOLS0 (фунты), 223 WEXIST0 (функция). 223 WLASTO (Функция), 223 VibCOhO (Функция), 224 WLROW0 (функция), 224
W MAXIMUM 0 (функция), 224 WMIMMUMO (функция), 223 WONTOP0 (функция), 223 WOUTPLT0 (функция), 223 WROWS0 (функция), 223 WTTTLE0 (Функция), 224 YEAR0 (функция). 314 ZOOM WINDOW (команда), 222