Оглавление

Часть 1

ОСНОВЫ 11

Глава 1. Является ли Delphi панацеей? 12
   Почему именно Delphi? 12
   Безграничные возможности 14
   Масштабируемость 15
   Что ожидает вас впереди 16
   Резюме 17

Глава 2. Начало работы 19
   Терминология 19
   Архитектура баз данных в Delphi 21
   Создание простой формы 23
   Мастер Database Form Wizard 23
   Анализ новой формы 28
   Создание простой формы вручную 30
   Создание приложения базы данных 35
   Компонент TDatabase 35
   Псевдонимы BDE 36
   Модули данных 39
   Создание формы вида "главная—подчиненная" 42
   Резюме 46
   Что дальше... 46

Глава 3. Основные понятия 47
   Два слова о проектах 47
   Проекты Delphi 47
   (Ключевое слово program 48
   Оператор uses 49
   Директива $R 49
   Application.CreateForm 49
   Application.Run '- 49
   Библиотеки 49
   Программные модули ^ 50
   Раздел interface 51
   Раздел implementation 51
   Переменные экземпляров форм 52
   Раздел initialization 52
   Раздел finalization  52
   Формы 52
   Модули данных 54
   Включаемые файлы 54
   Компоненты 55
   Резюме 56
   Что дальше... 56


Оглавление 723

Глава 4. Соглашения 57
   Элементы программы на языке Object Pascal 57
   Каталоги 57
   Проекты 58
   Файлы 58
   Программные модули 59
   Компоненты 59
   Типы 62
   Константы 62
   Переменные 62
   Процедуры и функции 62
   Оформление программ на языке Object Pascal 63
   Операторы if-else 63
   Блоки begin-end 63
   Комментарии 64
   Элементы серверов баз данных 64
   Серверы 65
   Базы данных 66
   Файлы данных 67
   Таблицы 67
   Индексы 68
   Представления 68
   Хранимые процедуры и функции 68
   Пакеты 69
   Правила 69
   Используемые по умолчанию значения 69
   Домены 70
   Ограничения и исключительные ситуации 70
   Генераторы и последовательности 70
   Курсоры 70
   Триггеры 71
   Столбцы 71
   Резюме 71
   Что дальше... 74

Глава 5. SQL для простых смертных 75
   Приступим к работе 76
   Выбор редактора SQL 76
   Разделители 76
   Создание базы данных - 77
   Создание таблиц 77
   Добавление данных 78
   Команда SELECT 79
   Подведем итог '. 87
   Еще несколько полезных команд 87
   Команда CONNECT , 88
   Команда UPDATE * 88
   Команда DELETE 88
   Команды COMMIT и ROLLBACK *"* 88
   Резюме 89
   Что дальше... <>»„ 89

Глава 6. Проектирование базы данных архитектуры клиент/сервер 90
   Общий подход к теме 90
   Основные этапы разработки баз данных 91
   Подробнее о пяти этапах 91
   Проблемы создания систем клиент/сервер 92
   Многоуровневость систем клиент/сервер 93

724 Оглавление

   Прикладная теория баз данных 93
   Определение назначения приложения 94
   Определение функций приложения 94
   Проектирование базы данных и процессов предметной области 95
   CASE-средства 95
   Моделирование процессов предметной области 99
   Моделирование сущностей и связей 109
   Моделирование реляционных структур данных 125
   Резюме 140
   Что дальше... 140

Глава 7. Проектирование приложения архитектуры клиент/сервер 141
   Проектирование базы данных и процессов предметной области 142
   Некоторые соображения о разработке программного обеспечения 142
   Выбор типа приложения 143
   Схема производственных процессов приложения 143
   Генерация приложения 145
   Проектирование иерархии форм и отчетов 145
   Определение вспомогательных подпрограмм 145
   Технологический план 145
   Производственный план 145
   Создание приложения 146
   Проектирование форм 146
   Формы поддержки решений 150
   Интерактивные формы 151
   Формы ввода данных 152
   Проектирование отчетов 152
   Тестирование приложения на предмет соответствия его назначению и функциям 155
   Установка приложения 156
   Резюме 156
   Что дальше... 156

Часть II
   Учебный КУРС 157
   Глава 8. Ваша первая система клиент/сервер 158
   Определение назначения приложения 159
   Определение функций приложения 159
   Проектирование базы данных и процессов предметной области 160
   Моделирование процессов предметной области 160
   Создание модели "сущность-связь" 164
   Моделирование логической структуры данных 171
   Создание базы данных ' 180
   Подведем итог 180
   Остальные функции приложения RENTMAN 180
   Резюме 181
   Что дальше... ^ 181

Глава 9. Подготовка 182
   База данных системы RENTfet^ 182
   Определение типа приложения' 182
   Определение объектов приложения на основе моделей процессов 183
   Разработка иерархии форм 185
   Классы форм Delphi 185
   Подготовка к разработке приложения 186
   Создание псевдонима BDE 186
   Создание нового проекта 188

Оглавление 725

   Создание модуля данных 188
   Создание иерархии форм 191
   Главная форма 199
   Резюме 204
   Что дальше... 204

Глава 10. Приступаем к созданию форм 205
   Режим поддержки Delphi в системе Silverrun-RDM 205
   Импортирование информации словаря данных из базы данных 205
   Настройка словаря данных 207
   Настройка модуля данных 209
   Настройка таблиц 209
   Форма EMPLOYEE Quick Entry/Edit Form 210
   Создание формы с помощью мастера Database Form Wizard 210
   Тестирование новой формы 211
   Удаление новой формы из проекта 212
   Создание новой формы с помощью конструктора форм 213
   Связывание с модулем данных 213
   Тестирование новой формы 214
   Форма Work Type Quick Entry/Edit Form 214
   Резюме 216
   Что дальше... 216

Глава 11. Разработка форм 217
   Форма TENANT 217
   Удаление унаследованных компонентов 218
   Настройка управляющей сетки данных 218
   Выравнивание компонентов 220
   Установка порядка обхода 220
   Приложение RENTMAN и поля с автоинкрементом 221
   Подключение формы к приложению 224
   Тестирование формы TENANT 225
   Настройка панели инструментов 225
   Форма PROPERTY 226
   Настройка управляющей сетки данных 226
   Связывание компонентов с таблицей PROPERTY 227
   Доступ к данным во время разработки 228
   Изменение порядка обхода 228
   Клавиши мнемонического доступа 228
   Тестирование формы PROPERTY 228
   Форма LEASE 229
   Настройка управляющей сетки 230
   Связывание компонентов с таблицей LEASE 230
   Завершение настройки формы 231
   Тестирование формы LEASE 232
   Форма WORDER ^ 233
   Сеточная форма 233
   Форма WORDER вида "главная—подчиненная" 239
   Использование запросов для получения дополнительной информации 243
   Создание запросов с помощью Query Builder 246
   Фильтры »-,^ 249
   Форма CALL '" 251
   Сеточная форма 251
   Форма редактирования 254
   Резюме 258
   Что дальше... 258

726 Оглавление

Глава 12. Разработка отчетов 259
   Методы создания отчетов в Delphi 259
   Типы отчетов 259
   Отчет-форма Work Order 260
   Настройка пункта меню для печати наряда 260
   Кнопка Print 261
   Средство Object Browser 262
   А нельзя ли побыстрее? 263
   Печать нескольких строк 264
   Специальные формы для печати 264
   Альтернативные методы создания форм-отчетов 264
   Тестирование формы-отчета 265
   Табличный отчет PROPERTY Listing Report 265
   Подключение отчета к приложению 267
   Отчет в виде списка заданий 268
   Обработчик события TaskListlClick 271
   Еще немного о TaskListlClick 273
   Предварительный просмотр отчета 273
   Резюме 273
   Что дальше... 274

Глава 13. Последние штрихи 275
   Создание логотипа приложения 275
   Изменение заголовка и системной пиктограммы приложения 277
   Создание справочной системы 278
   Утилиты для создания файла справки 278
   Основные принципы создания файлов справки 279
   Тестирование справочной системы Т&^>
   Подключение файла справки к приложению 287
   Добавление контекстно-зависимой справки 287
   Добавление всплывающих подсказок 288
   Настройка строки состояния 289
   Добавление диалогового окна About 291
   Добавление кнопки печати формы 293
   Добавление окон сообщения 293
   Резюме 294
   Что дальше... 294

Глава 14. Тестирование 295
   Тестирование приложения 295
   Проверка ограничений базы данных приложения 296
   Проверка объектов сервера 297
   Тестирование в многопользовательской среде 297
   Проверка пользовательских прав доступа 301
   Совершенствование приложения 303
   Резюме ^ 303
   Что дальше... 304

Часть III

Справочные материалы^ 305

Глава 15. Microsoft SQL Server 305
   Запуск SQL Server 306
   Подключение к серверу 306
   Настройка подключений клиента 307
   Устранение проблем при подключении к серверу Microsoft SQL Server 307
   Настройка псевдонима BDE 308
  
Оглавление 727

   Специальные параметры псевдонима BDE 309
   APPLICATION NAME 309
   CONNECT TIMEOUT 309
   HOST NAME 309
   NATIONAL LANG NAME 309
   TDS PACKET SIZE 309
   DATABASE NAME 310
   BLOB EDIT LOGGING 310
   MAX QUERY TIME 310
   Азы SQL 310
   Создание базы данных 310
   Команда USE 311
   Создание таблиц 311
   Ограничения 312
   Создание индексов 313
   Вставка данных 313
   Команда UPDATE "" 314
   Команда DELETE 314
   Управление транзакциями 314
   Команда SELECT 315
   GROUP BY 318
   HAVING 318
   ORDER BY 318
   Псевдонимы столбцов 319
   Псевдонимы таблиц 319
   Представления 319
   Хранимые процедуры 320
   Триггеры 323
   Курсоры 324
   Резюме 325
   Что дальше... 325

Глава 16. Oracle 326
   Запуск сервера 326
   Подключение к серверу 326
   Настройка псевдонима BDE 327
   Устранение проблем при подключении к серверу Oracle 328
   Азы SQL 329
   Создание базы данных 330
   Команда CONNECT ' 330
   Создание таблиц 330
   Ограничения 332
   Создание индексов 333
   Табличные области '•- 333
   Вставка данных 333
   Команда UPDATE ^ 334
   Команда DELETE 334
   Управление транзакциями 334
   Команда SELECT '*• 335
   GROUP BY 338
   HAVING ^.. 338
   ORDER BY '"* 338
   Псевдонимы столбцов 338
   Псевдонимы таблиц 339
   Представления 339
   Хранимые процедуры 340
   Триггеры 341
   Курсоры 341
  

728 Оглавление

   Резюме 342
   Что дальше 342

Глава 17. InterBase 343
   Запуск сервера 343
   Подключение к серверу 343
   Настройка псевдонима BDE 344
   Устранение проблем при подключении к серверу InterBase 344
   Азы SQL 345
   Создание базы данных 346
   Отображения 346
   Команда CONNECT 347
   Создание таблиц 347
   Ограничения 350
   Создание индексов 351
   Вставка данных 351
   Команда UPDATE 352
   Команда DELETE 353
   Управление транзакциями 353
   Команда SELECT 353
   GROUP BY 357
   HAVING 357
   ORDER BY 357
   Псевдонимы столбцов 358
   Псевдонимы таблиц 358
   Представления 358
   Хранимые процедуры 359
   Исключительные ситуации 361
   Триггеры 361
   Функции 362
   Курсоры 363
   Управление базами данных InterBase 365
   Резервирование и восстановление 365
   Управление бюджетами пользователей 365
   Настройка конфигурации сервера 366
   Просмотр статистики блокировок 367
   Проверка работоспособности базы данных 368
   Статистика базы данных 369
   Обновление базы данных 369
   Завершение транзакций - 370
   Резюме 370
   Что дальше... 370

Глава 18. Sybase SQL Server 371
   Запуск сервера 371
   Подключение к серверу 371
   Ошибка 422 пакета Net Library/Open Client в системе Windows NT 371
   Настройка клиента 372
   SYBPING -•*. 372
   Драйверы Windows З.х 373
   Настройка псевдонима BjQE 373
   Специальные параметры пс^донима BDE 374
   APPLICATION NAME 374
   CONNECT TIMEOUT 374
   HOST NAME 374
   NATIONAL LANG NAME 374
   TDS PACKET SIZE 374
   DATABASE NAME 375
   BLOB EDIT LOGGING 375


Оглавление 729

   MAX QUERY TIME 375
   Некоторые замечания о Sybase SQL Server 375
   Устранение проблем при подключении к серверу Sybase 375
   Азы SQL 376
   Создание базы данных 376
   Команда USE 377
   Создание таблиц 377
   Ограничения 378
   Создание индексов 379
   Вставка данных 379
   Команда UPDATE 380
   Команда DELETE 380
   Управление транзакциями 381
   Команда SELECT 381
   GROUP BY 384
   HAVING 384
   ORDER BY 385
   Псевдонимы столбцов 385
   Псевдонимы таблиц 385
   Представления 386
   Хранимые процедуры 386
   Триггеры 390
   Курсоры 390
   Резюме 392
   Что дальше... 392


Часть IV
Темы повышенной сложности 393

Глава 19. Отчеты 394
   Виды отчетов 394
   База данных EMPLOYEE . GDB 394
   Отчет Customer List Report 394
   Отчет Customer Group Report 397
   Отчет вида "главный-подчиненный" 399
   Многотабличный отчет 401
   Разработка приложения 403
   Просмотр отчетов во время работы приложения 407
   Графическое представление данных 408
   QRChart 408
   DecisionGraph 409
   Совершенствование отчетов 411
   Резюме ' 412
   Что дальше... 413

Глава 20. Бизнес-правила и сервер базы данных 414
   Определение бизнес-правила ^ 415
   Реализация бизнес-правил на сервере 416
   Преимущества реализации на уровне сервера 416
   Недостатки реализации на^^овне сервера 417
   Преимущества реализации на уровне приложения 417
   Недостатки реализации на уровне приложения 418
   Преимущества реализации бизнес-правил на уровне вспомогательных программ 419
   Недостатки реализации бизнес-правил на уровне вспомогательных программ 419
   Реализация бизнес-правил на сервере 419
   Лиха беда — начало 419
   Ограничения первичного ключа 420


730 Оглавление

   Ограничения внешнего ключа 421
   Ограничения проверки 421
   Используемые по умолчанию значения 421
   Представления 422
   Триггеры 422
   Хранимые процедуры 422
   Резюме 423
   Что дальше... 423

Глава 21. Бизнес-правила в приложениях 424
   Типы бизнес-правил 425
   Два правила создания бизнес-правил 425
   Правило номер один 425
   Правило номер два 426
   Компоненты 426
   Свойства TField и бизнес-правила 427
   Импортирование информации словаря 427
   Создание собственного набора атрибутов 427
   Определение бизнес-правил с помощью TField 428
   Наборы данных и бизнес-правила 429
   OnNewRecord 429
   BeforeDelete 430
   BeforePost 430
   Резюме 431
   Что дальше... 431

Глава 22. За пределами двухуровневой модели 432
   Remote Data Broker 432
   Брокер ограничений 434
   Поддержка отложенной обработки данных 434
   Обработка отдельных пакетов данных 435
   Резюме 436
   Что дальше... 436

Глава 23. Совместный доступ к данным 437
   Разграничение транзакций 437
   Выбор соответствующего уровня разграничения транзакций 437
   Классические проблемы разграничения транзакций 438
   Управление транзакциями с помощью компонента TDatabase 438
   Свойство Translsolation и уровни разграничения транзакций СУБД 439
   Управление транзакциями с помощью SQL 439
   Системы управления доступом 442
   Пессимистическое управление доступом 442
   Оптимистическое управление доступом 443
   Ведение журнала регистрации транзакций 445
   Сведение к минимуму информации, вносимой в журнал регистрации 445
   Дробление больших транзакций 446
   Резюме 447
   Что дальше... '•* 447

Глава 24. Дополнительные сведения об SQL 448
   DDL и DML ^^ 449
   Синтаксис операторов DDL 449
   Базы данных 449
   Сегменты и табличные области 449
   Индексы 450
   Генераторы и последовательности 451
   Представления 452
   Хранимые процедуры 454

Оглавление 731

   Хранимые функции 456
   Пакеты 457
   Исключительные ситуации 458
   Триггеры 459
   Таблицы 460
   Синтаксис операторов DML 460
   SELECT 460
   Многоуровневые объединения 461
   Самообъединения 461
   Тета-объединения 461
   Декартово произведение 461
   SELECT INTO 462
   INSERT 462
   DELETE 462
   UPDATE 463
   Курсоры 463
   Оптимальный SQL 464
   Синтаксис SQL 464
   Производительность 466
   Резюме 476
   Что дальше... 476

Глава 25. Оптимизация приложений архитектуры клиент/сервер 477
   Что такое "достаточно быстро" 477
   Определение оптимизируемых параметров 477
   Создание испытательной среды 477
   Определение оптимизации производительности 478
   Оптимизация работы приложений 478
   Минимизация количества подключений к серверу 478
   Оптимизация с использованием SQL 480
   Использование TField 484
   Использование словаря данных 484
   DBText и предназначенные только для чтения поля 484
   Многопоточные приложения баз данных 484
   Оптимизация работы сервера 490
   Оптимизация конфигурации сервера 490
   Оптимизация запросов 491
   Оптимизация работы сети 494
   Резюме 495
   Что дальше... . 495

Глава 26. Borland Database Engine 496
   Сравнительная характеристика систем BDE и ODBC 496
   Архитектура , 497
   Совместно используемые службы 497
   Службы операционной системы 498
   Диспетчер буферизации ^ 498
   Диспетчер памяти 498
   Кэширование объектов BLOB^. 498
   Сортировщик 498
   Обработчик запросов 498
   Генератор SQL ^^у. 498
   Служба Restructure "^ 498
   Служба преобразования данных 499
   Пакетная обработка таблиц 499
   Размещение таблиц в памяти 499
   Связанные курсоры 499
   Службы драйверов SQL 499
   Системный диспетчер 499


732 Оглавление


   Диспетчер конфигурации 499
   Драйверы языковой поддержки 499
   Интерфейс прикладных программ BDE 499
   Минимальная функциональность 500
   Ключевые структуры BDE 500
   Приложение с прямым обращением к системе BDE 502
   Обращение к BDE из приложений Delphi 505
   Прямое обращение к СУБД 508
   Получение информации о СУБД через BDE 509
   Вычисляемые индексы 512
   Оптимизация BDE 513
   Оптимизация доступа к BDE с использованием SQL 513
   Резюме 514
   Что дальше... 514

Глава 27. Разработка компонентов баз данных s\s
   Четыре основных правила разработки компонентов 515
   TArrayTable 516
   Использование нового компонента в приложениях 519
   TLiveQuery 520
   Свойство CreateViewSQL 522
   Свойство DropViewSQL 522
   Свойство TableNameFormat 522
   Конструктор 524
   Деструктор 524
   Процедура SetQuery 524
   Процедура CreateTemporaryView 525
   Процедура DoBeforeOpen 526
   Процедура DropTemporaryView 526
   Процедура DoAfterClose 526
   Компонент TDBNavSearch 529
   Компонент ZoomDIg 542
   Создаем собственный редактор свойств 549
   Другие особенности компонента ZoomDIg 549
   Резюме 550
   Что дальше... 550

Глава 28. Приложения для работы с Internet 551
   Проект номер один: Web-броузер 552
   Оживление новой формы 554
   Проект номер два: приложение для Web-сервера 560
   Создание базы данных 561
   Создание приложения 563
   Тестирование приложения Web-сервера 567
   Отладка приложений Web-сервера 572
   Проект номер три: приложение ActiveForm 573
   Построение приложения 573
   Добавление кода 575
   Совершенствование приложения 576
   Проект номер четыре: компактное клиентное приложение 578
   Проект номер пять: создание приложения для покупок по сети 590
   Резюме "'"^ 611
   Что дальше... 611

Глава 29. Совершенствование приложения 612
   Семь раз отмерь, один — отрежь 612
   Определите требования к сети 612
   Определите требования к драйверам баз данных 612


Оглавление 733


   Оцените требования к серверу баз данных 613
   Определите предварительные требования к базе данных 613
   Обычная установка 613
   Внешнее оформление 614
   Выбор параметров InstallShield для Delphi 616
   Определение файлов и компонентов 618
   Выбор компонентов пользовательского интерфейса 619
   Изменения в системном реестре 621
   Выбор папок и пиктограмм 621
   Создание дистрибутивных дисков 621
   Тестирование 621
   Создание дистрибутивов 622
   Расширенная установка 623
   Итак, приступим 623
   Внешнее оформление 624
   Выбор параметров InstallShield для Delphi 626
   Определение файлов и компонентов 628
   Выбор компонентов пользовательского интерфейса 631
   Изменения в системном реестре 632
   Определение папок и пиктограмм 632
   Создание дистрибутивных дисков 632
   Пробная установка 633
   Создание дистрибутивных дискет 633
   Установка объектов баз данных 633
   Резюме 634

Приложение Д. Delphi и другие системы 635
   С и C++ 635
   Распространенные заблуждения относительно языков программирования Object Pascal и С 636
   Заблуждение 1 636
   Заблуждение 2 637
   Заблуждение 3 637
   Типы данных Windows ' 639
   Программные конструкции 639
   Заблуждение 4 643
   Заблуждение 5 644
   Обращение к написанным на С динамическим библиотекам DLL 644
   Заключение 646
PowerBuilder 646
   Вопросы структуры 646
   Вопросы языка 648
   Заключение 655
Visual Basic и Access 655
   Вопросы структуры 655
   Вопросы языка "'' 665
   Заключение 669
Диалекты xBase: dBase, Clipper, FoxPro и другие 670
   Массивы данных переменного типа 670
   Индексы ^ 670
   Блоки кода 673
   Функции : • 674
   Поиск по индексу '^^Si^ - 679
   Поиск без использования индекса 679
   Фильтры 679
   Перемещение по таблице 679
   Запись текстовых файлов 680
   Заключение 681
   Резюме 681


734 Оглавление