Мой DELPHI – Программирование

Всё для программера

Урок 16: Настройка BDE

Урок 16: Настройка BDE

  • Обзор
  • На этом уроке мы познакомимся с ядром баз данных компании
    Борланд – Borland Database Engine (BDE),
    а также научимся создавать и редактировать алиасы – механизм, облегчающий
    связь с базами данных. Кроме того, мы изучим, как конфигурировать ODBC
    драйверы.

  • Сущность BDE
  • Мощность и гибкость Delphi при работе с базами данных
    основана на низкоуровневом ядре – процессоре баз данных Borland Database
    Engine (BDE). Его интерфейс с прикладными программами называется Integrated
    Database Application Programming Interface (IDAPI). В принципе, сейчас
    не различают эти два названия (BDE и IDAPI) и считают их синонимами. BDE
    позволяет осуществлять доступ к данным как с использованием традиционного
    record-ориентированного (навигационного) подхода, так и с использованием
    set-ориентированного подхода, используемого в SQL-серверах баз данных.
    Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя
    технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC)
    фирмы Microsoft. Но, как показывает практика, производительность систем
    с использованием BDE гораздо выше, чем оных при использовании ODBC. ODBC
    драйвера работают через специальный “ODBC socket”, который позволяет встраивать
    их в BDE.

    Все инструментальные средства баз данных Borland
    - Paradox, dBase, Database Desktop – используют BDE. Все особенности, имеющиеся
    в Paradox или dBase, “наследуются” BDE, и поэтому этими же особенностями
    обладает и Delphi. Прочитать остальную часть записи »

    Урок 15: Основы работы с базами данных

    Урок 15: Основы работы с базами данных

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

    Во вводном уроке (номер 1) мы дали краткое, “на пальцах”, толкование
    локальных и серверных баз данных и пояснили суть технологии клиент-сервер.
    На данном уроке мы рассмотрим процесс проектирования баз данных, общий
    для обеих технологий. И лишь детали его реализации будут различаться в
    разных архитектурах. Сразу оговоримся, что мы будем рассматривать только
    реляционные базы данных: во-первых, реляционные базы получили наибольшее
    распространение в мире; во-вторых, они наиболее “продвинуты” в научном
    плане; а в-третьих, ядро баз данных Borland Database Engine,
    на основе которого работают все последние продукты компании Borland,
    предназначено именно для работы с реляционными базами данных.

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

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

    Урок 14: Использование DLL в Delphi

    Урок 14: Использование DLL в Delphi

    1. Понятие DLL
    2. Вспомним процесс программирования в DOS. Преобразование исходного
      текста программы в машинный код включал в себя два процесса – компиляцию
      и линковку. В процессе линковки, редактор связей, компоновавший отдельные
      модули программы, помещал в код программы не только объявления функций
      и процедур, но и их полный код. Вы готовили таким образом одну программу,
      другую, третью … И везде код одних и тех же функций помещался в программу
      полностью.

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

      Но, чем же отличаются Dynamic
      Link Library (DLL) от обычных приложений? Для понимания этого требуется
      уточнить понятия задачи (task), экземпляра (копии) приложения (instance)
      и модуля (module).

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

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

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

      Часто, в виде DLL создаются
      отдельные наборы функций, объединенные по тем или иным логическим признакам,
      аналогично тому, как концептуально происходит планирование модулей ( в
      смысле unit ) в Pascal. Отличие заключается в том, что функции из модулей
      Pascal компонуются статически – на этапе линковки, а функции из DLL компонуются
      динамически, то есть в run-time. Прочитать остальную часть записи »

    Урок 13: OLE

    Урок 13: OLE

    1. Обзор
    2. Из статьи Вы узнаете
      основные сведения об OLE, некоторые
      вещи относительно OLE 2 и OLE
      Automation. В статье рассказывается об использовании
      объекта TOLEContainer для построения
      OLE приложения в Delphi.

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

      Аббревиатура OLE
      обозначает Objects Linked and Embedded (Присоединенные
      И Встроенные Объекты – ПИВО J ).
      Данные, разделяемые между приложениями называются OLE объектом.
      Приложение, которое может содержать OLE
      объекты, называют OLE контейнером
      (OLE Container).
      Приложение, данные из которого можно
      включить в
      OLE контейнер
      в виде OLE объекта, называют OLE
      сервером.
      Прочитать остальную часть записи »

    Урок 12: DDE

    Урок 12: DDE

    1. Обзор
    2. В данной статье приводятся основные факты о DDEML и показывается,
      как можно использовать DDE в программе. Предмет данной статьи технически сложен, однако библиотека Delphi упрощает наиболее трудные аспекты программирования DDE .

      В статье предполагается, что читатель может знать очень мало о предмете. Цель статьи – научить его использовать концепцию DDE при создании приложений в среде Delphi.

    3. Основы DDE
    4. Аббревиатура DDEML обозначает Dynamic Data Exchange Management
      Library (библиотека управления динамическим обменом данными). DDEML это
      надстройка над сложной системой сообщений, называемой Dynamic Data Exchange
      (DDE). Библиотека, содержащая DDE била разработана для усиления возможностей
      первоначальной системы сообщений Windows.

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

      Dynamic Data Exchange получило
      свое имя потому, что позволяет двум приложениям обмениваться данными (текстовыми,
      через глобальную память) динамически во время выполнения. Связь между двумя
      программами можно установить таким образом, что изменения в одном приложении
      будут отражаться во втором. Например, если Вы меняете число в электронной
      таблице, то во втором приложении данные обновятся автоматически и отобразят
      изменения. Кроме того, с помощью DDE можно
      из своего приложения управлять другими приложениями такими, как Word
      for Windows, Report Smith, Excel и др.

      Надеюсь, что данное краткое
      вступление поможет понять что предмет обсуждения представляет интерес.
      Далее рассказывается, как использовать компоненты Delphi для
      построения DDE приложений. Прочитать остальную часть записи »