Delphi

База данных delphi: Создание простой базы данных на Delphi7

Содержание

Основные понятия и определения баз данных в Delphi » DelphiComponent.ru

В материалах этой статьи вы найдете сведения, необходимые каждому начинающему программисту, который хочет научиться создавать приложения для работы с базами данных. Вы узнаете, что такое базы данных, из чего они обычно состоят, для чего используются. Кроме того, в этой статье рассказывается об основных типах баз данных, рассматриваются различия и области применения тех или иных типов баз данных. 

Множество фирм и компаний всего мира используют компьютеры для хранения и обработки служебной информации. Эта информация содержится в так называемых базах данных.

  

База данных — это хранилище для большого количества систематизированных данных, с которыми можно производить определенные действия (добавление, удаление, изменение, копирование, упорядочивание п т. д.).

Все данные, находящиеся в базе данных, можно представить в виде записей или объектов.

Для успешной работы с базами данных нужны программные средства, которые обеспечивали бы доступ к нужной информации, внесение каких-либо изменений в базу данных и другие действия с данными. Для решения этой задачи используются системы управления базами данных.

 

Система управления базами данных (СУБД) —это совокупность языковых и программных средств, обеспечивающих создание, использование и ведение базы данных. 

Все СУБД делятся на две группы:

  1. локальные;
  2. сетевые.

Локальные — это СУБД, работающие на одном компьютере. К ним относятся dBase, FoxPro, Microsoft Access и т. д.

Сетевые — это СУБД, позволяющие нескольким компьютерам использовать одну и ту же базу данных с помощью технологии клиент-сервер.

 

Примерами сетевых СУБД являются InterBase, Oracle, Microsoft SQL Server и т. д. О локальных и сетевых СУБД подробнее будет рассказано ниже.

Прежде чем рассматривать основные типы баз данных, нужно отметить, что все данные, помещенные в базу данных, каким-либо образом связаны между собой.

Взаимосвязи данных

Взаимосвязи данных могут быть одного из четырех типов: 

  1. один к одному;
  2. один ко многим;
  3.  много к одному;
  4.  много ко многим 

Давайте рассмотрим принципы построения таких взаимосвязей.

  1. Вид взаимосвязи один к одному подразумевает, что каждая запись одного объекта базы данных будет указывать на единственную запись другого объекта. Например, с одним клиентом может быть связан только один заказ.
  2. Взаимосвязь один ко многим означает, что одной записи объекта базы данных будет соответствовать несколько записей других объектов. Например, один клиент может иметь несколько квартир. Тогда с записью клиента будут связаны записи о его квартирах.
  3. Вид взаимосвязи много к одному равносилен рассмотренному выше виду «один ко многим» и отличается от него только направлением.
  4. Последний вид взаимосвязи много ко многим устанавливается между двумя типами объектов базы данных. Например, когда у одного банкира может быть несколько клиентов и, одновременно, один клиент может пользоваться услугами нескольких банков.

По принципу хранения данных все базы данных разделяются на несколько основных типов: 

  • иерархические;  
  • сетевые;
  • реляционные.

Иерархические базы данных 

Иерархические базы данных  применялись в начале 60-х годов. Они построены в виде обычного дерева. Данные здесь делятся на две категории: главные и подчиненные. Таким образом, один тип объекта является главным  а остальные, находящиеся на более низких ступенях иерархии, — подчиненными (рис. 1.1).

Рис. 1.1. Схема базы данных иерархического типа  

 

 

 Сетевые базы данных

Сетевые базы данных начали применяться практически одновременно с иерархическими. В этих базах данных любой объект может быть как главным, так и подчиненным (рис. 1.2).

Рис 1.2 Схема базы данных сетевого типа 

 

Таким образом, в сетевой модели базы данных каждый объект может иметь сколько угодно связей с другими объектами. Из-за сложности представления данных в таком виде от сетевой модели базы данных в большинстве случаев также пришлось отказаться.

Именно реляционные базы данных (от англ. relation — отношение) стали широко использоваться в программировании начиная с 70-х годов. В таких базах данных объекты и взаимосвязи между ними представляются в виде прямоугольных таблиц, состоящих из строк и столбцов (рис. 1.3). 

Рис. 1.3. Схема реляционной базы данных 

 

Каждая таблица здесь представляет собой объект базы данных. Такую базу данных легче всего можно реализовать на компьютере. В дальнейшем мы будем рассматривать именно реляционные базы данных.

Итак, таблицы, которые составляют базу данных, находятся на магнитном диске в отдельной папке. Папка в целом является базой данных, а входящие в нее таблицы хранятся в виде отдельных файлов. С этими файлами можно производить произвольные операции, которые допускаются операционной системой.

 

Большинство приложений Windows при попытке обращения к одному файлу сразу несколькими приложениями выдают сообщение об ошибке совместного доступа. Для таблиц базы данных такое ограничение крайне неудобно, поэтому им свойственна особенность, которая заключается в том, что несколько приложений могут получить доступ к файлу таблицы одновременно. Такой режим доступа называется 

многопользовательским.

 

Если внимательно посмотреть на файлы таблиц базы данных, то можно заметить, что для одной таблицы обычно создается несколько файлов. Это файлы, которые содержат дополнительную информацию, относящуюся к таблице. Объединяет эти файлы одинаковое имя, но при этом они имеют разные расширения.  Имя файлов таблицы определяет имя самой таблицы.

Рассмотрим теперь, из чего состоят таблицы базы данных. Как уже упоминалось, в каждой из них структурно выделяются строки и столбцы (рис. 1.4).

 

Столбцы таблицы обычно называют полями, а строки — записями. К полям таблицы предъявляются следующие требования:

  • поле должно иметь уникальное имя в пределах одной таблицы;
  • поле должно содержать данные только одного заранее определенного типа;
  • любая таблица должна иметь как минимум одно поле.

Рис 1.4 Структура таблицы базы данных 

 

 

ВНИМАНИЕ: При переименовании таблицы помните, что имя таблицы можно изменить только с помощью специальных программ, например Database Desktop. Простое изменение имени файла таб­лицы с помощью проводника Windows не приведет к переименованию таблицы.

 

 

 Давайте рассмотрим несколько форматов таблиц баз данных, поддерживаемых средой Delphi.  Следует заметить, что Delphi не имеет своего собственного формата таблиц, но содержит средства, позволяющие работать со многими внешними форматами.

 

 

К числу серверных таблиц баз данных, поддерживаемых Delphi, относятся:

  •     DB2;
  •     Informix;
  •     InterBase;
  •     Microsoft SQL Server;
  •     Oracle;
  •     Sybase.

В число локальных таблиц баз данных, поддерживаемых средой Delphi, входят:

  • Microsoft Access;
  • dBase;
  • FoxPro;
  • Paradox.

Наиболее часто используемыми из локальных баз данных являются dBase и Paradox У каждой из них есть свои особенности, которые мы и рассмотрим.

 

Базы данных dBase были первыми базами данных для персональных компьютеров. Они поддерживаются большинством сред программирования для разработки приложений баз данных. Таблицы, входящие в состав базы данных 

dBase, являются простыми и используют мало файлов. В таблице 1.1 перечислены основные расширения файлов таблиц dBase и их назначение.

 

Таблица 1.1. Файлы таблиц dBase

Расширение файла     Содержание файла

 

*.dbf

Непосредственно данные таблицы

*.dbt

большие двоичные данные (BLOBBinary Large Object).

 В их число

 

входят двоичные данные, memo-поля и OLE-поля

*.mdx

Индексы, которые поддерживаются средствами dBase

*.ndx

Не поддерживаемые индексы. Такие индексы должны обрабатываться

 

программно

 

Поля в таблице базы данных dBase должны удовлетворять следующим условиям:

  • имя поля может состоять из букв и цифр, но начинаться — с буквы;
  • не допускается включение в имя поля специальных символов и пробелов;
  • максимальное количество символов в имени поля — 10.

В таблице 1.2 перечислены основные типы полей таблиц dBase, указаны их обозначения в программе Database Desktop и приведено описание.

 

Таблица 1.2. Основные типы полей таблиц dBase

Тип поля    Обозначение                              Описание

в Database Desktop

 

Binary

В

Двоичные значения в виде последовательности байтов, хранящейся в файле с расширением *.dbt. Длина не ограничена

Character

С

Символьная строка. Длина ограничена 255 символами

Date

D

Значение даты

Float

F

Число с плавающей запятой в диапазоне от -1O308 до 10308. Точность представления — 15 знаков после десятичной точки

Logical

L

Булевская (логическая) переменная. Может принимать одно из двух значений: true (истина) или false (ложь)

Memo

M

Неограниченная последовательность символов, хранящихся в файле с расширением *. dbt

Number

N

Двоично-десятичный формат представления чисел

OLE

О

Данные, поддерживаемые технологией связывания и внедрения объектов OLE (Object Unking and Embedding)

Преимуществом  баз данных dBase является поддержка их многими средами программирования.

К недостаткам относятся отсутствие контроля целостности связей и отсутствие защиты данных.

Рассмотрим теперь базы данных Paradox. Они являются более развитыми по сравнению с dBase. Таблицы Paradox содержат достаточно большое число типов полей, поддерживают целостность ссылок, автоматически проверяют вводимые данные на совместимость по типу и поддерживают парольную защиту данных. 

 

Таблица 1.3. Файлы таблиц Paradox

Расширение файла

Содержание файла

*.db

Данные таблицы

*.mb

Большие двоичные данные (BLOB, Binary Large Object)

*.рх

Ключ (главный индекс)

*. xg* и *.yg*

Индексы

*.val

Параметры для проверки типов вводимых данных и целостности ссылок

*.tv и *.fam

Форматы вывода таблицы в приложении Database Desktop

*.net

Применяется для контроля доступа к таблице по сети

 

Поля в таблице Paradox должны удовлетворять следующим требованиям:

  • имя поля может состоять из букв (включая символы кириллицы) и цифр, но начинаться должно обязательно с буквы;
  • в имени поля допускается использовать символы пробела. -. $ и другие специальные символы;
  • не рекомендуется (хотя и не запрещается) использовать п имени поля символы точки, восклицательного знака и |,так как они зарезервированы средой Delphi;
  • максимальная длина имени поля составляет 25 символов:
  • ключевые поля таблицы должны быть первыми в ее структуре.

СОВЕТ: Если вы хотите обеспечить совместимость данных таблицы Paradox с таблицами других форматов (например, dBase), именуйте поля со следующими ограничениями: длина имени поля не должна быть более 10 символов, имя должно состоять только из латинских букв и цифр.

 

Таблица 1.4 содержит список полей, которые поддерживаются базой данных Paradox, а также их краткое описание. 

Тип поля

Обозначение

в Database Desktop

Описание

Alpha

A

Символьная строка, ограниченная 255 символами

Autoincrement

+

Поле, автоматически увеличивающее значение новой записи. Обычно используется для ключевого поля

BCD

#

Двоично-десятичная форма представления числа

Binary

В

Двоичное значение в виде последовательности байтов. Длина не ограничена. Первые 240 байтов хранятся в файле таблицы, остальные — в файле с расширением *.mb

Bytes

Y

Последовательность байтов длиной до 255

Date

D

Значение даты. Значения от 01.01.9999 до н. э. до 31.12.9999

Formatted Memo

F

Неограниченная последовательность форматирован­ных символов

 

Тип поля

Обозначение

в Database Desktop

Описание

Graphic

G

Графическое изображение в одном из форматов: *. bmp, *.eps, *.glf*.рсх, *.trfПосле загрузки в поле

 

 

 

 

таблицы изображение преобразуется в формат

 

 

*.bmpЗначение поля данного типа хранится в файле

 

 

с расширением *. mb

Logical

_i

Булево значение: true или false

Longlnteger

I

Целочисленное поле. Диапазон возможных значений от -2 147 483 648 до 2 147 483 647

Memo

M

Неограниченная последовательность символов.

 

 

Первые 240 символов хранятся в файле таблицы, остальные — в файле с расширением *. mb

 

 

Money

$

Хранит денежные величины. Отличается от типа Numberтем, что отображает денежный знак. Символ знака зависит от настроек операционной системы

Number

N

Число с плавающей запятой. Может принимать значения от -10307 до 10308. Точность —15 знаков после запятой

OLE

0

Хранит данные, поддерживаемые технологией OLE. Значения содержатся в файле с расширением *.mb

Short

S

Целое число. Может принимать значения от -32 768 до 32 767

Time

T

Содержит значения времени

TimeStamp

@

Содержит значения даты и времени

Приложение, созданное с помощью Delphi, осуществляет доступ к базе данных через специальный процессор баз данных, который называется BDE (Borland Database Engine).  

BDE — это набор драйверов и динамически присоединяемых библиотек (файлов *.dll), которые обеспечивают доступ к данным.

Если вы используете в своих приложениях BDE, то нужно обеспечить его установку на все компьютеры, на которых будут работать ваши приложения.

Процессор баз данных BDE позволяет наиболее эффективно работать с таблицами баз данных типа dBase и Paradox.

Все базы данных можно условно разделить на две большие группы в зависимости от взаимного расположения приложения и таблиц базы данных:

  1. локальные;
  2. клиент-серверные.

Локальные — это базы данных, таблицы которых расположены на том же компьютере, что и работающие с ними приложения. В таком случае говорят, что база данных имеет локальную  архитектуру (рис. 1.5). 

 

Приложения, которые работают с локальными базами данных, называются одно-ярусными (single-tiered applications), так как и приложение и база данных расположены на одном и том же компьютере (ярусе).

 

Кроме представленной выше организации локальной базы данных возможно осуществление многопользовательского доступа к данным таблиц. Такой вариант предусматривает наличие сети компьютеров с сервером. Данный способ организации базы данных называется файл-сервером (рис. 1.6). 

 

Рис 1.6. Файл-серверная архитектура базы данных 

 

Как вы можете видеть, на каждом из компьютеров-клиентов сети создается локальная копия базы данных сервера. Эта копия периодически обновляется.

 

Такая архитектура построения базы данных используется в сетях с малым количеством пользователей. Разработка приложения для работы с таким типом базы данных практически не отличается от создания обычного приложения для локальной базы данных.

 

К числу недостатков данной архитектуры можно отнести:

  • создание копий базы данных и работа с ними на отдельных компьютерах обусловливает необходимость периодического обновления всей базы данных. Это повышает сетевой трафик (нагрузку сети) и ведет к снижению быстродействия всей системы;
  • при изменении данных, сделанном одним пользователем, они не сразу передаются в локальные копии базы данных других пользователей, поэтому любой пользователь может видеть уже устаревшую информацию;
  • необходима синхронизация работы пользователей. Она должна заключаться во временном блокировании записей, с которыми работает пользователь, для других пользователей. Таким образом, оказывается невозможным одновременный доступ к одной и той же записи с нескольких компьютеров;
  • существуют трудности организации контроля доступа к данным, идентификации пользователя и поддержки целостности данных.

От всех этих сложностей избавлены клиент-серверные базы данных. Клиент-серверные базы данных (удаленные базы данных) — это базы данных, в которых таблицы расположены на сервере сети, а приложения для работы с этими таблицами находятся на пользовательских компьютерах (клиентах), подключенных к серверу. В данном случае говорят, что база данных имеет архитектуру «клиент-сервер».

Клиент-серверные базы данных работают с помощью запросов на языке SQL (Structured Query Language).

SQL-запросы применяются для любых операций с таблицами базы данных, расположенной на сервере.

 

В клиент-серверных приложениях баз данных вся информационная система делится на две разнородные части:

  1. клиент базы данных;
  2. сервер базы данных.

Клиент базы данных — это приложение пользователя, которое обеспечивает формирование и передачу запросов серверу, а также отображение полученных результатов. Кроме того, приложение-клиент должно обеспечивать интерфейс пользователя базы данных.

Сервер базы данных — специальная программа, которая управляет удаленной базой данных и обеспечивает выполнение запросов клиентов и выдачу результатов запросов.

 

Приложения, работающие с клиент-серверными базами данных, называются двухъярусными (рис. 1.7) или многоярусными (рис. 1.8) приложениями (two-tiered и multi-tiered applications).

 

Рис. 1.7. Двухъярусная архитектура «клиент-сервер»


 

При использовании двухъярусной архитектуры любой клиент посылает серверу SQL-запрос на предоставление данных из таблиц. Сервер обрабатывает этот запрос и возвращает клиенту только те данные, которые были определены запросом. Очевидны следующие преимущества такой архитектуры:

  • передача только востребованной информации, а не всей базы данных, что приводит к снижению трафика сети;
  • обеспечение безопасности данных и возможности установки прав доступа к информации для отдельных групп пользователей, связанные с тем, что работа с данными осуществляется одной программой — сервером базы данных;
  • упрощение клиентских приложений за счет сокращения кода, необходимого для обработки данных и обеспечения доступа к ним.

Несмотря на указанные достоинства, следует заметить, что обслуживание сервера и самой базы данных требует наличия в организации соответствующего специалиста. Такого специалиста называютадминистратором базы данных. В круг его обязанностей обычно входит обеспечение механизма защиты данных, поддержание их целостности, резервное копирование и восстановление данных и многое другое.

Для того чтобы еще больше упростить приложения клиентов базы данных, была разработана многоярусная архитектура базы данных, пример которой (трехъярусная архитектура) приведен на рис. 1.8.

Рис. 1.8. Трехъярусная архитектура «клиент-сервер» 

 

 В многоярусной архитектуре часть кода приложений клиентов перенесена в сервер приложений.

 

Сервер приложений — это программа, которая содержит средства доступа к данным и программный код, являющиеся наиболее общими для всех приложений-клиентов базы данных. 

 

Преимущество данной архитектуры заключается в упрощении программ-клиентов и уменьшении их кода.

Выбор типа базы данных зависит от многих факторов, не последним из которых является наличие сети из нескольких компьютеров.

Выбирая тип создаваемой базы данных, ответьте на следующие вопросы:

  • сколько человек будут использовать таблицы базы данных? Клиент-серверные базы данных разработаны для одновременного доступа к ним нескольких пользователей. Локальные базы данных обычно работают с одним пользователем;
  • какое количество данных будет содержаться в таблицах базы данных? Клиент-серверные базы данных могут содержать намного больше данных, чем локальн ые базы данных;
  • какая скорость доступа к данным вас устроит? Локальные базы данных обеспечивают более быстрый доступ к данным по сравнению с клиент-серверными;
  • как вы планируете администрировать базу данных? Локальные базы данных менее требовательны к настройке и администрированию. 
������� ������ ��� dle ������� ��������� ������

Помоги проекту! Расскажи друзьям об этом сайте:


Базы данных в Delphi 7

Данные локальной базы данных (файлы данных) находятся на одном (локальном) устройстве, в качестве которого может выступать диск компьютера или сетевой диск (диск другого компьютера, работающего в сети).  Для обеспечения разделения данных (доступа к данным) между несколькими пользователями, в качестве которых выступают программы, работающие на одном или нескольких компьютерах, в локальных базах данных применяется метод, получивший название блокировка файлов. Суть этого метода заключается в том, что пока данные используются одним пользователем, другой пользователь не может работать с этими данными, т. е. данные для него закрыты, заблокированы. Данные (файлы) удаленной базы данных находятся на удаленном компьютере. (Следует обратить внимание, что каталоги удаленного компьютера не могут рассматриваться как сетевые диски.)

Программа работы с удаленной базой данных состоит из двух частей: клиентской и серверной. Клиентская часть программы, работающая на компьютере пользователя, обеспечивает взаимодействие с серверной программой:

посредством запросов, передаваемых на удаленный компьютер, предоставляет доступ к данным.

Серверная часть программы, работающая на удаленном компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе.

Запросы представляют собой команды, представленные на языке SQL (Structured Query Language) — языке структурированных запросов.

Программа, работающая на удаленном сервере, проектируется таким образом, чтобы обеспечить одновременный доступ к информации нескольким пользователям. При этом для обеспечения доступа к данным вместо механизма блокировки файлов используют механизм транзакций.

Транзакция — это некоторая последовательность действий, которая должна быть обязательно выполнена над данными перед тем, как они будут переданы. В случае обнаружения ошибки во время выполнения любого из действий вся последовательность действий, составтяющая транзакцию, повторяется снова. Таким образом, механизм транзакций обеспечивает защиту отаппаратных сбоев. Он также обеспечивает возможность многопользовательского доступа к данным.

Разработка программы работы с удаленной базы данных — сложная и трудоемкая задача. Ее решение предполагает наличие у разработчика глубоких знаний и большого опыта разработки программного обеспечения. Поэтому в данной книге задача разработки удаленных баз данных не рассматривается.

НОУ ИНТУИТ | Программирование баз данных в Delphi

Форма обучения:

дистанционная

Стоимость самостоятельного обучения:

бесплатно

Доступ:

свободный

Документ об окончании:

Уровень:

Специалист

Длительность:

25:58:00

Выпускников:

307

Качество курса:

4.49 | 4.19

Курс посвящен программированию локальных, клиент-серверных и распределенных (многоуровневых) баз данных в среде разработки программ Borland Delphi.

Данный курс является продолжением курса «Введение в программирование на Delphi», разработанным по многочисленным просьбам учащихся. Курс позволит вам освоить все аспекты разработки приложений с базами данных, которые в настоящее время являются наиболее востребованным на рынке продуктом. Курс «Программирование баз данных в Delphi», помимо обычной информации, содержит множество недокументированных возможностей Delphi. Он позволит вам освоить работу с базами данных шаг за шагом, от простых приложений с локальными БД до сложной архитектуры клиент-серверных и распределенных БД. Лекции курса содержат множество практических примеров, подкрепленных подробными комментариями.

Теги: delphi, FDM, ibconsole, interactive sql, interbase, ms access, sql, базы данных, дочерняя таблица, драйверы, клиенты, компоненты, палитра компонентов, переключатели, приложения, процедуры, редактор полей, редакторы, родительская таблица, серверы, теневые копии, утилиты

Предварительные курсы

Дополнительные курсы

 

2 часа 30 минут

Теория проектирования баз данных
Эта лекция знакомит с терминологией, принятой в программировании БД. Вы узнаете, какие бывают связи между таблицами, что такое ссылочная целостность баз данных, а также познакомитесь с проектированием и нормализацией таблиц и тремя нормальными формами.

ADO. Связь с таблицей MS Access
На этой лекции мы поговорим о механизмах доступа к данным BDE и ADO, обсудим их плюсы и минусы. Создадим базу данных с помощью программы MS Access. Затем создадим приложение, которое работает с этой базой данных, используя механизм ADO.

Поиск, фильтрация и индексация таблиц
На этой лекции вы познакомитесь с различными методами поиска нужной записи в таблице, с применением фильтрации записей, удовлетворяющих нужному условию, с использованием индексных полей для сортировки данных в возрастающем и в убывающем порядке.

Наборы данных. Основные свойства, методы и события
На этой лекции вы познакомитесь с наиболее востребованными свойствами, методами и событиями, общими для всех наборов данных, потомков класса TDataSet. Кроме того, поговорим о методах блокировки данных при использовании файл-серверной архитектуры, а также о курсорах, специфичных для механизма ADO.

Таблицы Paradox в ADO
На этой лекции вы создадите небольшое приложение с двумя таблицами Paradox. Это приложение нам понадобится в дальнейшем, для изучения свойств полей. В приложении для доступа к этим таблицам используем механизм ADO, для чего нам потребуется создать и настроить поставщика данных ODBC. Для таблиц будет использоваться связь один-ко-многим для создания подстановочного lookup поля.

Поля (TField)
На этой лекции вы познакомитесь с объектами-полями и классом TField. Научитесь создавать и использовать в наборах данных подстановочные и вычисляемые поля , изучите наиболее важные свойства, методы и события класса TField.

Запросы
На этой лекции вы познакомитесь с компонентом-запросом TADOQuery, напишите приложение SQL-монитор и испытаете несколько операторов SQL, формируя различные наборы данных. Кроме того, вы изучите свойства и методы компонентов-запросов, отличные от других наборов данных.

Краткий курс языка запросов SQL
На этой лекции вы познакомитесь с основными командами языка запросов SQL и научитесь формировать как простые, так и сложные запросы.

Сохранение древовидных структур в базе данных
Эта лекция посвящена сохранению древовидных структур в базе данных. Вы узнаете, как можно сохранить дерево с неограниченным количеством ветвей в таблицу, и как считать его обратно в компонент TreeView.

Отчеты. Quick Report
На этой лекции вы научитесь создавать профессиональные отчеты, как простые, так и связанные. Изучите назначение основных компонентов из набора Quick Report.

Работа с сеткой DBGrid
На этой лекции вы изучите различные способы работы с сеткой DBGrid, научитесь выводить текст различным цветом, добавлять в ячейки кнопки и списки.

DBChart. Графики и диаграммы
На этой лекции вы познакомитесь с компонентом DBChart, предназначенным для создания графиков и диаграмм. Изучите основные методы и свойства этого компонента, научитесь программно менять внешний вид графиков.

Типы данных. Домены
На этой лекции вы познакомитесь с типами данных InterBase и научитесь использовать домены.

Ключи и индексы
На этой лекции речь пойдет о первичных, уникальных и внешних ключах. Вы научитесь управлять ссылочной целостностью таблиц и создавать индексы.

Хранимые процедуры
На этой лекции вы научитесь создавать хранимые процедуры, изучите встроенный алгоритмический язык хранимых процедур и триггеров, узнаете об исключениях и событиях.

Генераторы и триггеры. Реализация автоинкрементного поля
Эта лекция посвящена мощным инструментам клиент-серверных баз данных: генераторам и триггерам. Вы узнаете, что такое генераторы, как их создавать и как менять их значения. Так же вы изучите триггеры и события, на которые они реагируют. Кроме того, вы научитесь создавать автоинкрементные ключевые поля.

Команды модификации данных DML. Скрипты
На этой лекции вы изучите команды модификации данных DML. Научитесь добавлять новые записи, редактировать и удалять существующие. Познакомитесь с созданием скриптовых файлов.

Стандартные функции InterBase. UDF
На этой лекции мы разберем подробный синтаксис встроенных функций InterBase, а также опробуем их на примерах. Кроме того, мы познакомимся с механизмом UDF (внешние пользовательские функции), создадим DLL-файл с такой функцией и подключим его к базе данных.

Транзакции
На этой лекции мы подробно разберем суть понятия «транзакция», узнаем, как InterBase обеспечивает работу транзакций, познакомимся с многоверсионной архитектурой, изучим уровни изолированности транзакций. На практическом примере создадим приложение, работающее сразу с двумя транзакциями.

Администрирование InterBase: безопасность БД
Эта лекция посвящена вопросам администрирования и безопасности сервера и баз данных InterBase. Подробно рассмотрены такие механизмы, как пользователи и роли, предоставление и отъем прав. Рассмотрены принципы работы с утилитами командной строки.

Администрирование InterBase: обслуживание БД
Эта лекция посвящена обслуживанию баз данных InterBase. Подробно поднимаются вопросы резервного копирования и восстановления БД, изменение настроек базы и применение теневых копий. Даются рекомендации по ремонту разрушенных баз данных.

Программное администрирование баз данных InterBase
Эта лекция подробно, шаг за шагом, описывает создание приложения для администрирования сервера InterBase. Рассмотрена работа компонентов IBBackupService, IBRestoreService и IBSecurityService вкладки InterBase Admin палитры компонентов.

Многоуровневая архитектура
На этой лекции мы рассмотрим многоуровневую архитектуру баз данных, познакомимся с преимуществами ее использования, со способами подключений и с технологией DataSnap. Разработаем сервер приложений по технологии DCOM.

Многоуровневая архитектура. Создание «тонкого» клиента
На этой лекции мы рассмотрим создание клиентского приложения в многоуровневой архитектуре баз данных, с механизмом подключения «тонкого» клиента к серверу. Изучим работу компонентов DCOMConnection и ClientDataSet, с помощью которых клиентское приложение подключим к серверу, сделанному в предыдущей лекции.

Источники Delphi — Список рисунков

Содержание


Глава 1: Delphi 7 и его IDE

Рисунок 1. 1. Форма и модуль данных в Delphi 7 IDE
Рисунок 1.2: Страница Preferences диалогового окна Environment Options
Рисунок 1.3: Окно «Изменить элемент списка дел» можно использовать для изменения элемента дела, эту операцию вы также можете выполнить непосредственно в исходном коде.
Рисунок 1.4: Несколько языков, поддерживаемых IDE Delphi, могут быть связаны с различными расширениями файлов на странице «Параметры источника» диалогового окна «Свойства редактора».
Рисунок 1.5. Вы можете настроить проводник кода в диалоговом окне «Параметры среды».
Рисунок 1.6: Представление «Диаграмма» показывает отношения между компонентами (и даже позволяет вам их настраивать).
Рисунок 1.7: Параметры печати для представления диаграммы
Рисунок 1.8: Пример Frames1 демонстрирует использование кадров. Фрейм (слева) и его экземпляр внутри формы (справа) синхронизируются.
Рисунок 1.9: Мультитаргетный менеджер проекта Delphi
Рисунок 1. 10: Новая страница сообщений компилятора диалогового окна «Параметры проекта»
Рисунок 1.11: Браузер проекта
Рисунок 1.12: Первая страница диалогового окна New Items, обычно известного как Object Repository

Глава 2: Язык программирования Delphi

Рисунок 2.1: Результат примера CreateComps, который создает компоненты Button во время выполнения
Рисунок 2.2: Форма
примера DateProp
Фигура 2.3: Две формы примера FormProp во время выполнения
Рисунок 2.4: Представление структуры объекта в памяти со ссылкой на нее
Рисунок 2.5: Представление операции присвоения ссылки на объект другому объекту. Это отличается от копирования фактического содержимого одного объекта на другой.
Рисунок 2.6: Результат программы NewDate с названием месяца и дня в зависимости от региональных настроек Windows
Фигура 2.7: Результат примера
PolyAnimals
Рисунок 2. 8: Пример ErrorLog и создаваемый им журнал
Рисунок 2.9: Пример вывода ClassRef example

Глава 3: Библиотека времени выполнения

Рисунок 3.1: Пример округления, продемонстрированное округление банкира и арифметическое округление
Рисунок 3.2: Форма примера VariantComp во время разработки
Рисунок 3.3: Пример ConvDemo во время выполнения
Рисунок 3.4: Выходные данные блока EuroConv, показывающие использование механизма преобразования Delphi с пользовательской единицей измерения
Рисунок 3.5: Пример вывода приложения
FilesList
Рисунок 3.6: Диалоговое окно процедуры SelectDirectory, отображаемое приложением FilesList
Рисунок 3.7: Выходные данные примера IfSender
Рисунок 3.8: Выходные данные примера
ClassInfo

Глава 4: Классы базовой библиотеки

Рисунок 4.1: Графическое представление основных групп компонентов VCL
Рисунок 4. 2: Выходные данные примера RunProp, который обращается к свойствам по имени во время выполнения
Рисунок 4.3: В примере ChangeOwner нажатие кнопки «Изменить» перемещает компонент Button1 во вторую форму.
Рисунок 4.4: Список дат, показанный в примере ListDemo
Рисунок 4.5: Текстовое описание компонента формы, отображаемое внутри себя в примере
FormToText
Рисунок 4.6: Пример ZCompress может сжать файл с помощью библиотеки ZLib.
Рисунок 5.1: Сравнение первых трех страниц палитры компонентов для приложения на основе CXL (вверху) и приложения на основе VCL (внизу)
Рисунок 5.2: Приложение, написанное с помощью CLX, можно напрямую перекомпилировать под Linux с помощью Kylix (отображается в фоновом режиме).
Рисунок 5.3: Пример HtmlEdit во время выполнения: Когда вы добавляете новый HTML-текст в заметку, вы сразу получаете предварительный просмотр.
Рисунок 5.4: В примере NameValues ​​используется компонент ValueListEditor, который показывает пары имя / значение или ключ / значение в списке строк, также видимых в простой заметке.
Рисунок 5.5: Конструктор меню Delphi в действии
Рисунок 5.6. Диалоговое окно «Изменить порядок вкладок»
Рисунок 5.7: Пример InFocus во время выполнения
Рисунок 5.8: Элементы управления в примере Anchors автоматически перемещаются и растягиваются, когда пользователь изменяет размер формы. Для перемещения элементов управления код не требуется, только правильное использование свойства Anchors.
Рисунок 5.9: Компонент splitter в примере Split1 определяет минимальный размер для каждого элемента управления в форме, даже тех, которые не находятся рядом с разделителем.
Рисунок 5.10: Элемент управления ListBox в примере CustHint показывает разные подсказки, в зависимости от того, над каким элементом списка находится курсор.
Рисунок 5.11: Рисуемое пользователем меню в примере
ODMenu
Рисунок 5.12: Различные примеры выходных данных компонента ListView в программе RefList, полученных путем изменения свойства ViewStyle и добавления флажков
Рисунок 5. 13: Пример DragTree после загрузки данных и развертывания ветвей
Рисунок 5.14. В примере CustomNodes есть представление в виде дерева с объектами узлов, основанными на различных настраиваемых классах, благодаря событию OnCreateNodes-Class.

Глава 6: Создание пользовательского интерфейса

Рисунок 6.1: Первый лист PageControl примера Pages с его контекстным меню
Рисунок 6.2: Вторая страница примера может использоваться для изменения размера и расположения вкладок. Здесь вы можете увидеть вкладки слева от элемента управления страницей.
Рисунок 6.3: Интерфейс программы просмотра растровых изображений в примере BmpViewer. Обратите внимание на вкладки, нарисованные владельцем.
Рисунок 6.4: Первая страница примера WizardUI во время разработки
Рисунок 6.5: Панель инструментов примера RichBar. Обратите внимание на раскрывающееся меню.
Рисунок 6.6: StatusBar в примере RichBar отображает более подробное описание, чем подсказка.
Рисунок 6.7: Программа StylesDemo, приложение для Windows, которое в настоящее время имеет необычный макет Motif
Рисунок 6.8: В примере Pages используется текущая тема Windows XP, так как она включает файл манифеста (сравните рисунок с 6.1)
Рисунок 6.9: Редактор компонентов ActionList со списком предопределенных действий, которые вы можете использовать
Рисунок 6.10: Редактор ActionList в примере действий
Рисунок 6.11: Пример действий с подробным описанием отправителя события
OnExecute объекта действия
Рисунок 6.12: Пример MdEdit2 во время выполнения, когда пользователь переставляет панели инструментов на панели управления
Рисунок 6.13: Пример MdEdit2 позволяет закрепить панели инструментов (но не меню) вверху или внизу формы или оставить их плавающими.
Рисунок 6.14: Пример DockTest с тремя элементами управления, закрепленными в главной форме
Рисунок 6.15: Основная форма примера DockPage после того, как форма была прикреплена к элементу управления страницей слева.
Рисунок 6.16: Три страницы диалогового окна редактора ActionManager
Рисунок 6.17. Используя компонент CustomizeDlg, вы можете позволить пользователю настраивать панели инструментов и меню приложения, перетаскивая элементы из диалогового окна или перемещая их по панели действий.
Рисунок 6.18: ActionManager отключает недавно использованные пункты меню, которые вы все еще можете увидеть, выбрав команду расширения меню.
Рисунок 6.19: Приложение ListActions имеет панель инструментов, на которой размещены статический список и виртуальный список.
Рисунок 7.1: динамическая форма, сгенерированная примером DynaForm, полностью создается во время выполнения, без поддержки времени разработки.
Рисунок 7.2: Образцы форм с различными стилями границ, созданные в примере
Границы
Рисунок 7.3: Пример BIcons. Выбрав значок рамки справки и нажав кнопку, вы получите справку, показанную на рисунке.
Рисунок 7.4: В примере NoTitle нет настоящей подписи, но есть фальшивая, сделанная с меткой.
Рисунок 7.5. Программа KPreview во время разработки
Рисунок 7.6: Во время операции перетаскивания в примере MouseOne пунктирная линия используется для обозначения конечной области прямоугольника.
Рисунок 7.7: Вывод ColorKeyHole, показывающий эффект новых свойств TransparentColor и AlphaBlend и Animate-Window API
Рисунок 7.8: Вывод примера
Scroll1
Рисунок 7.9: Линии для рисования на виртуальной поверхности формы
Рисунок 7.10: Страница «Формы» диалогового окна «Параметры проекта Delphi»
Рисунок 7.11: Диалоговое окно примера RefList2, используемого в режиме редактирования. Обратите внимание на используемый графический компонент ComboBoxEx.
Рисунок 7.12: Три формы (основная форма и два диалоговых окна) примера DlgApply во время выполнения
Рисунок 7.13: Диалоговое окно выбора шрифта с кнопкой Применить
Рисунок 7. 14: Основная форма примера Splash с экраном-заставкой (это версия Splash3)

Глава 8: Архитектура приложений Delphi

Рисунок 8.1: Пример ActivApp показывает, активно ли приложение и какая из форм приложения активна.
Рисунок 8.2: Вывод примера экрана с некоторыми вторичными формами
Рисунок 8.3: Программа MdiDemo использует серию предопределенных действий Delphi, связанных с меню и панелью инструментов.
Рисунок 8.4: Результат выполнения примера MdiMulti с дочерним окном, в котором отображаются круги
Рисунок 8.5: Строка меню приложения MdiMulti автоматически изменяется в соответствии с выбранным в данный момент дочерним окном, что можно увидеть, сравнив строку меню с панелью на рисунке 8.4.
Рисунок 8.6: Диалоговое окно New Items позволяет вам создать унаследованную форму.
Рисунок 8.7: Две формы примера VFI во время выполнения
Рисунок 8.8: Форма базового класса и две унаследованные формы примера PoliForm во время разработки
Рисунок 8. 9: Фрейм и два его экземпляра во время разработки, в примере Frames2
Рисунок 8.10: Каждая страница примера FramePag содержит фрейм, таким образом разделяя код этой сложной формы на более управляемые фрагменты.
Рисунок 8.11: Первая страница примера FrameTab во время выполнения. Фрейм внутри вкладки создается во время выполнения.

Глава 9: Написание компонентов Delphi

Рисунок 9.1: Редактор пакетов
Рисунок 9.2: Параметры проекта для пакетов
Рисунок 9.3: В разделе «Содержит» редактора пакетов показаны как модули, включенные в пакет, так и файлы ресурсов компонентов.
Рисунок 9.4: Инспектор объектов может автоматически разворачивать подкомпоненты, показывая их свойства, как в случае свойства Timer компонента TMdClock.
Рисунок 9.5: Компонент, ссылающийся на внешнюю метку во время разработки
Рисунок 9.6: Выходные данные компонента
стрелки
Рисунок 9. 7: Вывод компонента Arrow с толстым пером и специальной кистью для штриховки
Рисунок 9.8. Компонент «Стрелка» определяет категорию настраиваемых свойств «Стрелка», как вы можете видеть в Инспекторе объектов. Обратите внимание, что свойства могут быть видны в нескольких разделах, например в этом случае свойство Filled.
Рисунок 9.9: Пример использования компонента
ActiveButton
Рисунок 9.10: Пример ListDialDemo показывает диалоговое окно, инкапсулированное в компоненте ListDial.
Рисунок 9.11: Редактор коллекции с Object TreeView и Object Inspector для элемента коллекции
Рисунок 9.12: Список звуков предоставляет подсказку для пользователя, который также может ввести значение свойства или дважды щелкнуть, чтобы активировать редактор (показано ниже, на рисунке 9.13).
Рисунок 9.13: Форма редактора свойств звука отображает список доступных звуков и позволяет загрузить файл и прослушать выбранный звук.
Рисунок 9. 14: Пользовательские пункты меню, добавленные редактором компонентов компонента
ListDialog

Глава 10: Библиотеки и пакеты

Рисунок 10.1: Результат примера CallCpp при нажатии каждой из кнопок
Рисунок 10.2: Вывод примера CallFrst, который вызывает DLL, которую вы создали в Delphi
Рисунок 10.3: На странице Application диалогового окна Project Options теперь есть раздел Library Name.
Рисунок 10.4: Если вы запустите две копии программы UseMem, вы увидите, что глобальные данные в ее DLL не используются совместно.
Рисунок 10.5: Структура пакета, содержащего форму, в редакторе пакетов Delphi
Рисунок 10.6: Выходные данные примера PackInfo с подробностями используемых пакетов

Глава 11: Моделирование и программирование ООП (с ModelMaker)

Рисунок 12.1: Пример идентификаторов GUID, созданных в примере NewGuid. Значения зависят от моего компьютера и времени, в течение которого я запускаю эту программу.
Рисунок 12.2: Мастер
COM-объектов
Рисунок 12.3: Документ Word создается и составляется приложением WordTest Delphi.
Рисунок 12.4: Редактор библиотеки типов, показывающий детали интерфейса
Рисунок 12.5: Диалоговое окно импорта библиотеки типов Delphi.
Рисунок 12.6: Вторая панель инструментов в примере OleCont (вверху) заменена панелью инструментов сервера (внизу).
Рисунок 12.7: Пример WordCont показывает, как использовать автоматизацию со встроенным объектом.
Рисунок 12.8: Программа WebDemo после выбора страницы, хорошо известной разработчикам Delphi
Рисунок 12.9. Элемент управления XArrow ActiveX и его страница свойств, размещенная в среде Delphi
Рисунок 12.10: Элемент управления XClock в примере HTML-страницы
Рисунок 12.11: Диалоговое окно New Trans-actional Object, используемое для создания объекта COM +
Рисунок 12.12: Недавно установленный компонент COM + в настраиваемом приложении COM + (как показано с помощью инструмента Microsoft Com-ponent Services)
Рисунок 12. 13: Событие COM + с двумя подписками в консоли управления
служб компонентов
Рисунок 12.14. Программа NetImport использует объект .NET для суммирования чисел.

Глава 13: Архитектура базы данных Delphi

Рисунок 13.1: Пример локальной таблицы, активной во время разработки в Delphi IDE
Рисунок 13.2: XML-отображение файла CDS в примере MyBase2. Структура таблицы определяется программой, которая создает файл для набора данных при его первом запуске.
Рисунок 13.3: Элементы управления с учетом данных в примере DbAware во время разработки в Delphi
Рисунок 13.4: Результат примера CustLookup, в котором DBLookupCombo-Box показывает несколько полей в раскрывающемся списке
Рисунок 13.5: Редактор полей с диалоговым окном «Добавить поля»
Рисунок 13.6: Результат выполнения примера FieldAcc после нажатия кнопок «Центр» и «Формат».
Рисунок 13.7: Определение вычисляемого поля в примере Calc
Рисунок 13. 8: Результат выполнения примера Calc. Обратите внимание на вычисляемый столбец Плотность населения и кнопку с многоточием, отображаемую при его редактировании.
Рисунок 13.9: Результат выполнения примера FieldLookup с раскрывающимся списком внутри сетки, отображающим значения, взятые из другой таблицы базы данных
Рисунок 13.10: При обработке событий OnGetText, и On-SetText поля даты, пример NullDates отображает конкретные выходные данные для нулевых значений.
Рисунок 13.11: Результат программы Total, показывающий общую зарплату сотрудников
Рисунок 13.12: Программа DrawData отображает сетку, которая включает текст мемо-поля и вездесущую рыбу Borland.
Рисунок 13.13: В примере MltGrid есть элемент управления DBGrid, который позволяет выбирать несколько строк.
Рисунок 13.14: Результат примера NonAware в режиме просмотра. Программа вручную извлекает данные при каждом изменении текущей записи.
Рисунок 13. 15: В примере SendToDb вы можете использовать поле со списком для выбора записи, которую хотите просмотреть.
Рисунок 13.16: Пример CdsCalcs демонстрирует, что, написав небольшой код, вы можете заставить элемент управления DBGrid визуально отображать группировку, определенную в ClientDataSet.
Рисунок 13.17: В нижней части редактора полей ClientDataSet отображаются агрегированные поля.
Рисунок 13.18: Пример MastDet во время выполнения

Глава 14: Клиент / сервер с dbExpress

Рисунок 14.1: IBConsole позволяет вам управлять с одного компьютера базами данных InterBase, размещенными на нескольких серверах.
Рисунок 14.2: IBConsole может открывать отдельные окна, чтобы показать вам детали каждой сущности — в данном случае таблицу.
Рисунок 14.3: Окно Interactive SQL IBConsole позволяет вам заранее попробовать запросы, которые вы планируете включать в свои программы Delphi.
Рисунок 14. 4: Редактор подключений dbExpress с диалоговым окном настроек драйверов dbExpress
Рисунок 14.5. Редактор CommandText, используемый компонентом SQLDataSet для запросов
Рисунок 14.6: Образец журнала, полученный SQLMonitor в примере
DbxSingle
Рисунок 14.7: Пример SchemaTest позволяет вам видеть таблицы базы данных и столбцы данной таблицы.
Рисунок 14.8: Редактирование набора параметров компонента запроса
Рисунок 14.9: Пример ParQuery во время выполнения
Рисунок 14.10. Программа CdsDelta отображает состояние каждой записи ClientDataSet.
Рисунок 14.11: Пример CdsDelta позволяет вам увидеть временные запросы на обновление, хранящиеся в свойстве Delta объекта ClientDataSet.
Рисунок 14.12: Диалоговое окно согласования ошибки, предоставляемое Delphi в репозитории объектов и используемое в примере
CdsDelta
Рисунок 14.13: Форма приложения TranSample во время разработки. С помощью переключателей можно установить различные уровни изоляции транзакции.
Рисунок 14.14: Вывод IbxUpdSql, пример
Рисунок 14.15: Результат примера IbxMon на основе компонента
IBMonitor
Рисунок 14.16: Информация о сервере, отображаемая приложением IbxMon
Рисунок 14.17: Редактор свойства GeneratorField наборов данных IBX
Рисунок 14.18: Форма, показывающая компании, офисы и людей (часть примера RWBlocks)
Рисунок 14.19: Пример формы RWBlocks для регистрации класса
Рисунок 14.20: Бесплатная форма запроса в примере RWBlocks предназначена для опытных пользователей.
Рисунок 15.1: Редактор строки подключения в Delphi
Рисунок 15.2: Первая страница редактора строки подключения Microsoft
Рисунок 15.3: Пример OpenSchema извлекает первичные ключи таблиц базы данных.
Рисунок 15.4: Настройка расширенных свойств
Рисунок 15.5: ABCCompany.xls в Delphi — небольшая дань уважения Дугласу Адамсу
Рисунок 15. 6: Форма примера DataClone с двумя копиями набора данных (оригинал и клон)

Глава 16. Многоуровневые приложения DataSnap

Рисунок 16.1: Мастер удаленного модуля данных
Рисунок 16.2: Когда вы активируете компонент ClientDataSet, подключенный к удаленному модулю данных во время разработки, данные с сервера становятся видимыми, как обычно.
Рисунок 16.3: Сообщение об ошибке, отображаемое в примере ThinCli2, когда идентификатор сотрудника слишком велик
Рисунок 16.4: Форма примера ClientRefresh, которая автоматически обновляет активную запись и позволяет более обширные обновления, нажимая кнопки
Рисунок 16.5: Вторичная форма примера ThinPlus, показывающая данные параметрического запроса
Рисунок 16.6: Пример ThinPlus показывает, как поле набора данных может отображаться в сетке в плавающем окне или извлекаться с помощью ClientDataSet и отображаться во второй форме.Обычно вы делаете одно из двух, а не оба сразу!

Глава 17: Написание компонентов базы данных

Рисунок 17. 1: ProgressBar с поддержкой данных в действии в примере
DbProgr
Рисунок 17.2: Полосы прокрутки примера DbTrack позволяют вводить данные в таблицу базы данных. Флажок и кнопки проверяют включенное состояние компонентов.
Рисунок 17.3: Пример ViewGrid демонстрирует выходные данные компонента RecordView, используя образец таблицы базы данных BioLife от Borland.
Рисунок 17.4: Пример компонента MdDbGrid во время разработки. Обратите внимание на вывод графических и мемо-полей.
Рисунок 17.5: Структура каждого буфера настраиваемого набора данных вместе с различными локальными полями, относящимися к его подчастям
Рисунок 17.6: Форма примера StreamDSDemo. Пользовательский набор данных был активирован, поэтому вы уже можете видеть данные во время разработки.
Рисунок 17.7: Результат примера DirDemo, который использует необычный набор данных, который показывает данные каталога
Рисунок 17.8. Пример ObjDataSet-Demo демонстрирует набор данных, сопоставленный с объектами с помощью RTTI.
Рисунок 18.1: Rave Designer с простым отчетом
Рисунок 18.2: Окно предварительного просмотра Rave Report для отчета
Рисунок 18.3: После выполнения проекта Rave пользователь может выбрать выходной формат или механизм рендеринга.
Рисунок 18.4: Отчет RaveSingle (сгенерированный с помощью мастера) во время разработки
Рисунок 18.5. Текстовый редактор данных Rave Designer
Рисунок 18.6: Главный / подробный отчет. Перед ним появится редактор стиля полосы.
Рисунок 18.7: Полужирный текст в отчете определяется во время выполнения сценарием.

Глава 19. Интернет-программирование: сокеты и Indy

Рисунок 19.1: Клиентская программа примера IndySock1
Рисунок 19.2: Клиентская и серверная программы примера сокета базы данных (IndyDbSock)
Рисунок 19.3. Программа SendList во время разработки
Рисунок 19.4: Приложение WebFind можно использовать для поиска по списку сайтов в поисковой системе Google.
Рисунок 19.5: Результат работы текстового браузера BrowseFast
Рисунок 19.6: Страница, отображаемая при подключении браузера к пользовательской программе HttpServ
Рисунок 19.7: Результат примера HtmlProd, простая демонстрация компонента Page-Producer, когда пользователь нажимает кнопку
демонстрационной страницы
Рисунок 19.8: Вывод примера HtmlProd для кнопки
строки печати
Рисунок 19.9: Редактор свойства Columns компонента DataSetTable-Producer обеспечивает предварительный просмотр окончательной таблицы HTML (если таблица базы данных активна).

Глава 20. Веб-программирование с помощью WebBroker и WebSnap

Рисунок 20.1: Результат работы приложения CgiDate в браузере
Рисунок 20.2: Список приложений, зарегистрированных в отладчике веб-приложений, отображается, когда вы подключаетесь к его домашней странице.
Рисунок 20.3: Выходные данные, соответствующие пути к таблице в примере BrokDemo, который создает таблицу HTML с внутренними гиперссылками
Рисунок 20.4. Действие формы в примере CustQueP создает HTML-форму с динамически обновляемым компонентом выбора, отражающим текущий статус базы данных.
Рисунок 20.5: Программа WebSearch показывает результат нескольких поисков в Google.
Рисунок 20.6. Опции, предлагаемые диалоговым окном «Новое приложение Web-Snap», включают тип сервера и кнопку, которая позволяет вам выбрать основные компоненты приложения.
Рисунок 20.7: Диалоговое окно
нового модуля страницы WebSnap
Рисунок 20.8: Пример WSnap2 представляет собой простой сценарий и настраиваемое меню, хранящееся во включаемом файле.
Рисунок 20.9: Конструктор веб-поверхности для страницы inout в примере WSnap2 во время разработки
Рисунок 20.10: страница, показанная в примере WSnapTable при запуске, включает начальную часть выгружаемой таблицы.
Рисунок 20.11: Страница просмотра формы, показанная в примере WSnapTable во время разработки, в Web Surface Designer (или редакторе AdapterPageProducer)
Рисунок 20.12: Пример WSnapMD показывает структуру «главный / подробный» и имеет некоторые настраиваемые выходные данные.
Рисунок 20.13: Два экземпляра браузера работают в двух разных сеансах одного и того же приложения WebSnap.

Глава 21. Веб-программирование с помощью IntraWeb

Рисунок 21.1: Программа IWSimpleApp в браузере
Рисунок 21.2: Контроллерная форма автономного приложения IntraWeb
Рисунок 21.3: Пример IWTree включает меню, древовидную структуру и динамическое создание компонента памятки.
Рисунок 21.4: В примере IWTwoForms используется компонент IWGrid, встроенный текст и компоненты IWURL.
Рисунок 21.5: Приложение IWSession имеет как счетчики для каждого сеанса, так и глобальные счетчики, что можно увидеть, запустив два сеанса в двух разных браузерах (или даже в одном браузере).
Рисунок 21.6: HTML Layout Editor от IntraWeb — это полноценный визуальный HTML-редактор.
Рисунок 21.7: Сетка с учетом данных в примере
IWScrollData
Рисунок 21.8: В основной форме примера IWGridDemo используется сетка в рамке с гиперссылками на вторичную форму.
Рисунок 21.9: Вторичная форма примера IWGridDemo позволяет пользователю редактировать данные и перемещаться по записям.
Рисунок 21.10: Сетка в примере IWClientGrid поддерживает настраиваемую сортировку и фильтрацию без повторной выборки данных на веб-сервере.

Глава 22: Использование технологий XML

Рисунок 22.1: Пример XmlEditOne позволяет вам вводить XML-текст в памятку, указывая ошибки при вводе, и показывает результат во встроенном браузере.
Рисунок 22.2: Пример XmlDomTree может открыть общий XML-документ и отобразить его внутри общего элемента управления TreeView.
Рисунок 22.3: Пример DomCreate может генерировать различные типы XML-документов с помощью DOM.
Рисунок 22.4: XML, сгенерированный для описания формы программы DomCreate. Обратите внимание (в дереве и в тексте заметки), что свойства типов классов дополнительно расширены.
Рисунок 22.5. Мастер привязки XML-данных Delphi может исследовать структуру документа или схемы (или другого определения документа), чтобы создать набор интерфейсов для упрощенного и прямого доступа к данным DOM.
Рисунок 22.6: Журнал, созданный при чтении XML-документа с помощью SAX в примере Sax-Demo1
Рисунок 22.7. XML Mapper показывает две стороны преобразования для определения сопоставления между ними (с правилами, указанными в центральной части).
Рисунок 22.8: Пример XmlMapping использует компонент TransformProvider, чтобы сделать сложный XML-документ доступным для редактирования в нескольких компонентах ClientData-Set.
Рис 22.9. В примере MapTable создается XML-документ из таблицы базы данных с использованием настраиваемого файла преобразования.
Рисунок 22.10: Редактор InetXPage-Producer позволяет визуально создавать сложные HTML-формы, аналогично AdapterPageProducer.
Рисунок 22.11: Приложение IeFirst отправляет браузеру некоторые компоненты HTML, документ XML и код JavaScript для отображения данных в визуальных компонентах.
Рисунок 22.12: Результат преобразования XSLT, созданного (даже во время разработки) компонентом XSLPageProducer в примере
XslCust
Рис 22.13: Пример LargeXml в действии
Рисунок 23.1: Мастер импорта WSDL в действии
Рисунок 23.2: Пример перевода с английского на немецкий, полученный BabelFish от Alta-Vista через веб-службу
Рисунок 23.3: Описание веб-службы Convert-Service, предоставляемой компонентами Delphi
Рисунок 23.4: Клиент ConvertCaller веб-службы Convert-Service показывает, как мало немецких марок вы получали за столько итальянских лир до того, как евро все изменил.
Рисунок 23.5: Клиентская программа веб-службы SoapEmployee, пример
Рисунок 23.6: Журнал HTTP отладчика веб-приложения включает низкоуровневый запрос SOAP.
Рисунок 23.7: Пример FishClient получает двоичный ClientDataSet во вложении SOAP.
Рисунок 23.8: Браузер UDDI, встроенный в Delphi IDE
Рисунок 23.9: В примере UddiInquiry используется ограниченный браузер UDDI.

Глава 24. Архитектура Microsoft .NET с точки зрения Delphi

Рисунок 24.1: Демонстрация HelloWorld в ILDASM
Рисунок 24.2: Выходные данные ILDASM для примера
DestructorTest
Рисунок 24.3: Окно ILDASM IL для деструктора Destroy
Рисунок 24.4: Глобальный кэш сборок .NET, как показано в проводнике Windows

Глава 25: Delphi для.Предварительная версия .NET: язык и RTL

Рисунок 25.1: Пример NetClassInfo показывает базовые классы данного компонента.
Рисунок 25.2: Пример CLRReflection с загруженной сборкой
Рисунок 25.3: Пример aspbase.aspx в браузере
Рисунок 25.4: Результат примера aspui.aspx после ввода в поле редактирования и нажатия кнопки



Навигация по буквам:

Навигация по устройствам:

System, SysUtils, StrUtils, DateUtils, FileCtrl, ConvUtils, StdConvs, Math, Классы, Диалоги, Типы, Варианты

Навигация по категориям:

Директивы компилятора, Директивы, Ключевые слова, Типы, Переменные, Константы, Функции, Процедуры

Базы данных — Соединения с базами данных Delphi

Базы данных — Соединения с базами данных Delphi

Базы данных — подключения к базе данных Delphi

Delphi — отличный язык, но, судя по файлам справки, как подключить его к базам данных не совсем понятно.

На палитре инструментов есть 2 вкладки.

  • Доступ к данным
  • Элементы управления данными
Элементы управления данными на самом деле довольно просто подключить, когда доступ к данным настроен. Просто используйте списки выбора, чтобы установить Data Source и Data Field в указанном порядке.

Поэтому на этой странице будет обсуждаться настройка компонентов доступа к данным. которые используются для определения Источники данных .

TTable -> TDataSource -> TQuery
TTable -> TDataSource -> TDBComboBox
TDatabase -> TTable -> TDataSource -> TDBComboBox
 
TTable подключается к базе данных ODBC, каталогу для таблиц Paradox,
или компонент TDatabase.
DatabaseName, TableName

В списке выбора на TTable.DatabaseName перечислены доступные псевдонимы ODBC
и значения TDatabase.DatabaseName.

TDataSource - DataSet (TDataSet / TTable)
              Используйте это для обработки обработки на уровне записи.Он сохраняет все связанные элементы управления, указывающие на одну и ту же запись.
              Все компоненты, поддерживающие данные, должны подключаться к источнику данных.

TDBComboBox - Источник данных (TDataSource), DataField

Больше

First, Next, Last (и т.п.) являются абстрактными членами TDataSet.
DataSet - это свойство TDataSource.
TTable является наследником TDataSet.

 

Используйте TDatabase при использовании BDE. Явное объявление не требуется, если вы не хотите доступ к свойствам и методам во время выполнения.Основное преимущество — возможность отключить диалоговое окно запроса имени пользователя / пароля и / или предоставить эти данные программно.

Если TTable используется без явной привязки его к существующей TDatabase, тогда создается неявная TDatabase по мере необходимости контролировать соединение.


Основная процедура просмотра содержимого таблицы

Поместите 3 компонента на новую (пустую) форму.

  • Доступ к данным / таблица
  • Доступ к данным / Источник данных
  • Элементы управления данными / DBGrid
Установите следующие свойства
    Таблица1.DatabaseName Выберите из списка баз данных ODBC. (Я предполагаю, что в вашей системе определен хотя бы один.)
    Таблица1.Имя таблицы Выберите значение из списка доступных таблиц.(Вероятно, вам будет предложено ввести имя пользователя и пароль.)
    Таблица 1. Актив Установите значение True. (По умолчанию всегда ложно. True позволяет видеть данные, False — нет.)
    DataSource1.DataSet Выберите единственное значение из раскрывающегося списка. (Это будет добавленный ранее TTable.)
    DBGrid1.Источник данных Выберите единственный вариант из раскрывающегося списка.
На этом этапе данные таблицы должны быть видны.

Чтобы просмотреть записи, дважды щелкните компонент TTable (это открывает диалоговое окно редактора полей) и используйте кнопки видеомагнитофона для просмотра записей.


TD База данных

Используйте TDatabase, если вы хотите подключиться к нескольким таблицам в той же базе данных, или если вы хотите подавить раздражающий запрос входа в систему (Готов поспорить, я хочу :).

    База данных1.AliasName Выберите из списка псевдонимов базы данных ODBC или BDE. (Я предполагаю, что в вашей системе определен хотя бы один.) Установка этого очищает Database1.DatabaseName .
    База данных 1. Имя базы данных Это имя, с которым будут связаны компоненты TTable. Это может быть то же самое, что Database1.AliasName , вы можете придумайте имя, или вы можете ввести полный путь к База данных Paradox (каталог).Здесь нельзя ввести файл MDB MS Access.
    База данных1.LoginPrompt Установите значение False, чтобы отключить диалоговое окно по умолчанию.
    База данных1.OnLogin Добавление кода к этому событию также отключит диалоговое окно по умолчанию. (Жесткое кодирование идентификаторов пользователей и паролей считается безопасным проблема.)
    База данных1.Параметры Если Database1.AliasName пусто, а Database1.DriverName присваивается MSACCESS, то вот как указать база данных MS Access.
     ИМЯ БАЗЫ ДАННЫХ = H: \ Shared \ xxx \ Databases \ Converted.mdb
    ODBC DSN =
     
Обратите внимание, что при прямом подключении к базе данных MS Access, полный путь входит в список строк Params , а не параметр DatabaseName .

Не могу понять как получить Драйвер Microsoft Access (* .mdb) работать.

Последовательность подключения к mdb-файлу MS Access без использования ODBC.


Полевые компоненты

Каждый раз, когда TTable (или другой компонент на основе TDBDataSet) помещается в форму, Delphi автоматически создает компоненты (базового типа TField) для всех доступных полей. С помощью диалогового окна редактора полей (дважды щелкните компонент TTable), вы можете контролировать, какие компоненты поля будут созданы.Кроме того, вы можете явно создать вычислил и поля поиска .

Создание явных компонентов поля дает ряд преимуществ.

Вы должны использовать редактор полей для добавления и удаления постоянные поля.


BDE

Borland Database Engine (BDE) предоставляет возможность для доступа к различным типам баз данных с помощью компонентов Data Access .Основным недостатком является то, что BDE необходимо установить перед ваши программы будут работать.

Однако, с точки зрения разработчика, Data Explorer на основе BDE — отличный инструмент, который вы должен быть хорошо знаком с. (Изнутри Delphi выберите Database / Explore ) Этот инструмент позволит вам просматривать таблицы — вы можете видеть данные, определить структуру и т.п.

Запустить Администратор BDE для определения псевдонимов.


ADO

ADO позволяет разрабатывать приложения баз данных, которые не нужен BDE для запуска. Вместо этого вы используете MDAC. Основное отличие состоит в том, что MDAC является частью Windows 98 и более поздних версий. (т.е. ВАМ не нужно его устанавливать).

Бесплатный он-лайн курс

ADO не является частью Delphi 5 Professional — вы должны импортировать его. Обратите особое внимание на эти инструкции по установке. Project / Import Type Library и выберите

  • Microsoft ADO Data Control 6.0 (SP3) (OLEDB) (версия 6.0)
  • Microsoft ADO Ext. 2.1 для DLL и безопасности (версия 2.1)
Однако компоненты не имеют настраиваемых значков, и помощь отсутствует.


КА ДАО

Одна альтернатива — использовать KA Dao, бесплатный компонент доступен из www.delphi.pari.bg, www.delphiwarrior.freeservers.com или www.torry.net.

Доступная справка довольно хороша, но она не интегрирована в справку Delphi. Просто откройте KADAO.HLP . Основные инструкции описаны через

  Содержание / Советы и хитрости /
     Как сделать простое приложение, используя KADao в качестве компонента таблицы? 
 

Чтобы получить доступ к файлу * .mdb,

  • Задайте следующие свойства в указанном порядке
    Компонент Свойство Значение Комментарии
    KADaoDatabase1 DatabaseType Доступ Это значение по умолчанию
    База данных наименование *.mdb файл
    MdbVersionAutoDetect True Необязательно, может помочь
    Версия 3,5
    3,6
    4,0
    Доступ XX-97
    Доступ 2000-2002 гг.
    Доступ 2002 SP-1
    Подключено True Это подключает базу данных
    KADaoTable1 База данных KADaoDatabase1
    Имя таблицы Выберите один из списка
    Активно Истинно
    DataSource1 DataSet KADaoTable1
    Включено Истинно
    DBEdit1 Источник данных Источник данных1
    Поле данных Выбрать любое поле
    DBNavigator1 Источник данных Источник данных1
    VisibleButtons Отключите ненужные
    KADaoDatabase1 также имеет UserName , Password и DatabasePassword , которые, возможно, потребуется установить.Разница между паролем и паролем базы данных четко не объяснено.

    Есть 18 связанных dcu, поэтому я храню их все в исходном каталоге KADAO. и ссылку на него.

      Инструменты / Параметры среды … / Библиотека / Путь к библиотеке


    Запуск с CD-ROM

    Запуск программного обеспечения с компакт-диска (устройство только для чтения) довольно просто

    Установите  KADaoDatabase1.Только чтение от  до  Истина 
    По умолчанию  Ложь 
    
    Установите  KADaoDatabase1.Exclusive  на  True 
    По умолчанию  Ложь 
     
    Вы можете протестировать первый шаг, щелкнув правой кнопкой мыши файл * .mdb в проводнике Windows и установив его свойства на только для чтения .

    Обычно при открытии файла * .mdb файл блокировки (* .ldb) создается в том же каталоге, что и файл * .mdb. Однако, поскольку CD-ROM предназначен только для чтения, вам нужно указать движку базы данных Jet не создавать файл блокировки — ReadOnly / Exclusive делает это.


    «на запись» код

    Вы можете разместить код «для каждой записи» под любым

    • DataSource1DataChange
    • KADaoTable1AfterScroll
    Кажется, они оба работают.


    Ошибки

    Моя система Windows 98 отказывается запускать исполняемый файл, потому что в нем нет лицензия DAO. В системах Windows 98 se нет проблем.


    dbExpress

    Предполагается, что dbExpress является заменой BDE (который больше не поддерживается).Его использование требует загрузки различных файлов * .dll на клиентские машины.

    Delphi, dbExpress и MySQL объясняет, как использовать dbExpress для подключения к MySQL. Он также содержит предупреждение — dbExpress: Delphi 6 против Delphi 7 — не запускать одновременно Delphi 6 и Delphi 7 приложения на одной машине при доступе к базам данных Firebird — dbExpress * .dll несовместимы и вызовут ошибки.


    Firebird

    Firebird — это бесплатная версия Borland Interbase с открытым исходным кодом. Ядро базы данных SQL.Есть несколько разных способов доступа к таблицам

    • Компоненты Interbase (использует BDE)
    • ODBC / ADO (мне так и не удалось заставить это работать в Windows XP)
    • dbExpress (НЕ может иметь приложения Delphi 6 и Delphi 7 на одном компьютере)


    Использование компонентов Interbase

    Чтобы получить доступ к файлу * .gdb,

  • Задайте следующие свойства в указанном порядке
    Компонент Свойство Значение Комментарии
    IBDatabase1 Имя базы данных Установите это значение *.gdb или файл * .fdb
    Подключено True Это подключает базу данных
    IBTransaction1 DefaultDatabase IBDatabase1
    Активно Истинно
    IBTable1 База данных IBDatabase1
    Транзакция IBTransaction1 Выбирается автоматически
    Имя таблицы Выберите один из списка
    Активно Истинно
    DataSource1 DataSet IBTable1
    Включено Истинно Значение по умолчанию
    DBEdit1 Источник данных Источник данных1
    Поле данных Выбрать любое поле
    DBNavigator1 Источник данных Источник данных1
    VisibleButtons Отключите ненужные
    Если вы редактируете какой-либо параметр и данные не отображаются, проверьте IBDatabase1.Подключены , IBTransaction1.Active и IBTable1.Active , в этой последовательности. (На самом деле, просто установка IBTable1.Active на True автоматически установите другие.)

    Чтобы автоматически подключиться к базе данных Firebird, установить следующие

  • IBDatabase1.LoginPrompt to false

    Чтобы подключиться к базе данных примера Interbase, распространяемой с Delphi, установить IBDatabase1.Имя базы данных по

    Идентификатор компьютера: C: \ Program Files \ Common Files \ Borland Shared \ Data \ employee.gdb
     

    Согласно сообщению группы новостей, TIBTable никогда не следует использовать с Клиент-серверные приложения — используйте вместо этого IBDataset . (Они оба основаны на TIBCustomDataSet ) Это отчасти потому, что TIBTable.Refresh не будет возвращать вставленные элементы. и IBDataset.Refresh будет (я предполагаю, что запрос выполняется повторно).


    ODBC / ADO

    Чтобы получить доступ к базе данных Firebird через ODBC, вы должны сначала определите соединение ODBC (DSN). Выбрать Панель управления / Администрирование / Источники данных (ODBC) / Системный DSN / Добавить … Затем выберите драйвер Interbase. В диалоговом окне важны только эти 2 поля.

      Поле Комментарий
      Имя источника данных Это имя (псевдоним), которое использует ваша программа.
      База данных Полный путь при сетевом протоколе Локальный
    После того как вы создали DSN, вы можете протестировать его, повторно открыв определение (дважды щелкните или выберите Configure… ), введите имя пользователя и пароль и нажмите Test Connect . К сожалению, в моей системе Windows XP это всегда не удавалось.

    Чтобы получить доступ к файлу * .gdb через ODBC / ADO (мне так и не удалось заставить его работать),

    • Добавьте эти компоненты — KADaoDatabase, KADaoTable, DataSource, DBGrid
    • Установите для KADaoTable1.Database значение KADaoDatabase1
    • Установить DataSource1.DataSet на KADaoTable1
    • Установить DBGrid1.DataSource в DataSource1
    У меня много ошибок, связанных с файлом информации Workgroup , но, конечно, нет никакой информации о том, что это может означать. Я предполагаю, что это связано с указанным выше отказом ODBC.
      KADaoDatabase1.UserName sysdba
      KADaoDatabase1.Password мастер-ключ
      KADaoDatabase1.База данных Тип ODBC
      KADaoDatabase1.Database Выберите из списка псевдонимов базы данных ODBC. (Я предполагаю, что в вашей системе определен хотя бы один.)
      KADaoDatabase1.LoginPrompt Установите значение False, чтобы отключить диалоговое окно по умолчанию.
      KADaoDatabase1.OnLogin Добавление кода к этому событию также отключит диалоговое окно по умолчанию.(Жесткое кодирование идентификаторов пользователей и паролей считается безопасным проблема.)


    Список литературы

    Компьютерная лаборатория efg предоставляет Файлы DBF — с ADO или без него
    Здесь представлены очень подробные пошаговые инструкции о том, как подключиться к файлу * .dbf, используя как компонент TTable и компоненты ADO Borland.В обоих примерах используются модули данных .
    Автор: Роберт Клемензи — [email protected]
    URL: http: // cpcug.org / пользователь / Clemenzi / технический / Базы данных / Delphi / Database_Connections.html
  • Какая база данных для настольных приложений Delphi лучше всего поддерживает хранимые процедуры?

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
    5. Реклама Обратитесь к разработчикам и технологам со всего мира
    6. О компании

    Загрузка…

    1. Авторизоваться

    Какую встроенную базу данных использовать в приложении Delphi?

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
    5. Реклама Обратитесь к разработчикам и технологам со всего мира
    6. О компании

    Загрузка…

      .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *