BorlandC++Builder1

Автор: Пользователь скрыл имя, 09 Октября 2011 в 01:57, статья

Краткое описание

Borland C++ Builder - выпущенное недавно компанией Borland средство быстрой азработки приложений, позволяющее создавать приложения на языке C++, используя при этом среду разработки и библиотеку компонентов Delphi. В настоящей статье рассматривается среда разработки C++ Builder и основные приемы, применяемые при проектировании пользовательского интерфейса.

Оглавление

Введение
Среда разработки C++ Builder
Компоненты C++ Builder
Свойства компонентов
События
Методы
Менеджер проектов
Создание приложений в С++ Builder
Пример: создание простейшего приложения

Файлы: 1 файл

BorlandC++Builder1.doc

— 1.61 Мб (Скачать)

Последние два компонента присутствуют в палитре компонентов с целью совместимости с формами, созданными в версии Delphi 1.0 (как известно, в C++ Builder можно использовать формы Delphi 1.0 и 2.0).

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

    Компоненты DBLookupList и DBLookupListBox отличаются от компонента DBListBox тем, что позволяют согласовать  выбранное значение из списка с текущей строкой другой таблицы БД, тогда как для DBListBox список значений для выбора определен заранее и не имеет отношения к таблицам БД.

    Компоненты DBLookupCombo и DBLookupComboBox являются похожими на ComboBox компонентами, то есть они похожи на DBLookupList и DBLookupListBox, за исключением того, что пользователь может либо выбирать значение в списке, либо вводить новое значение. ComboBox, на который похожи DBLookupCombo и DBLookupComboBox, сочетает в себе возможности ListBox с возможностями компонента Edit. DBLookupCombo и DBLookupComboBox отличаются от компонента ComboBox тем, что позволяют согласовать выбранное значение с текущей строкой другой таблицы БД. При размещении компонентов DBLookupList, DBLookupListBox, DBLookupCombo или DBLookupComboBox на форме эта форма в приложении должна содержать DataSource и компонент - потомок TDataSet (например, TTable).

      Пример 3. Разработка приложения, использующего компонент  просмотра баз  данных

В этом примере  рассматривается связь таблиц CUSTOMER (компании-заказчики) и ORDERS (их заказы) из базы данных BCDEMOS и используется компонент DBLookupListBox для того, чтобы отобразить на экране имя компании, соответствующее значению CustID, находящемуся в таблице ORDERS.

    Чтобы создать форму для выведения на экран выбранных из таблицы ORDERS полей, следует открыть новый проект и сохранить главную форму как DBLOOK1.CPP, а проект как DBLOOK.MAK. Далее нужно разместить на форме компоненты TTable, DataSource, DBGrid и DBNavigator. Далее следует присвоить свойству Database Name компонента Table1 значение BСDEMOS, свойству TableName - значение ORDERS.DB, а свойству Active - значение true. Свойству DataSet компонента DataSource1 присвоим значение Table1, а свойству AutoEdit - значение false. Свойству DataSource компонентов DBGrid1 и DBNavigator1 присвоим значение DataSource1. Далее используем Fields Editor, чтобы внести в набор данных Table1 поля OrderNo, CustNo, SaleDate, ItemsTotal, AmountPaid. Расположим поля в Fields Editor так, чтобы OrderNo был бы первым, а CustNo - вторым. Можно скомпилировать и сохранить это приложение, затем запустить и протестировать его.

    Теперь  внесем в приложение компонент DBLookupListBox и установим его свойство DataSource равным DataSource1, а свойство DataField равным CustNo. Поместим на форму новые компоненты TTable и DataSource. Установим свойство DatabaseName для компонента Table2 равным BCDEMOS, свойство TableName равным CUSTOMER.DB, а свойство Active равным true. Свяжем DataSource2 с Table2. Свяжем компонент DBLookupListBox1 с DataSource2, установив значение свойства ListSource компонента DBLookupListBox1 равным DataSource2, свойства KeytField равным CustNo, а свойства ListField равным Company. Можно скомпилировать и сохранить приложение, затем запустить и протестировать его.

    В компоненте DBLookupListBox будет выделено название компании, соответствующее  значению CustNo в текущей строке DBGrid (рис. 9). Можно использовать DBLookupListBox для выбора заказчика по имени, при  этом в таблице Orders будет устанавливаться  соответствующее значение CustNo.

Рис. 9. Приложение с компонентом DBLookupListBox.

    В следующих статьях будет рассмотрено  использование компонента TQuery и  возможности создания и использования SQL-запросов в приложениях С++ Builder.  
 
 
 
 
 
 
 
 
 
 
 
 

      Работа  с базами данных в Borland C++ Builder

Наталия Елманова

      Содержание

  • Введение
  • Компонент TQuery
  • Visual Query Builder
  • Пример использования компонента TQuery
  • Модули данных
  • SQL Explorer и словарь данных

      Введение

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

    Запрос  в C++ Builder - это объект, представляющий собой набор данных. Обычно для  создания запроса используется компонент TQuery - потомок абстрактного класса TDataSet.

      Компонент TQuery

Компонент TQuery, как и компонент TTable, обладает всеми свойствами компонента TDataSet.

    Как и в случае с компонентом TTable, компонент TDataSource управляет взаимодействием  между компонентами Data Controls и компонентом TQuery. Обычно приложение имеет один компонент DataSource для каждого компонента TQuery.

    Наиболее  часто используются следующие свойства компонента TQuery:

  • Active - указывает, открыт (true) или закрыт (false) данный запрос
  • Eof, Bof - эти свойства принимают значение true, когда указатель текущей записи расположен на последней или соответственно первой строке набора данных, являющегося результатом выполнения запроса.
  • DatabaseName - имя каталога либо псевдоним (alias) удаленной БД, к которой осуществляется запрос.
  • DataSource - указывает источник данных для параметризованных запросов (т.е. запросов с параметрами, значение которых заранее неизвестно).
  • Fields - это свойство доступно только во время выполнения (run-time only) и используется для чтения или модификации поля, определяемого по порядковому номеру.
  • Params - содержит параметры для параметризованного запроса, как SomeNo в следующем примере:

Select * from Orders where CustNo=:SomeNo

  • SQL - строковый массив, содержащий текст оператора запроса SQL.

Отметим, что  язык запросов SQL (Structured Query Language), традиционно применяемый при работе с серверными СУБД, может быть использован и при работе с таблицами формата dBase и Paradox. Не вдаваясь в подробное описание синтаксиса этого языка (с ним можно познакомиться в других источниках, например, в книге М.Грабера "Введение в SQL"), отметим одну его особенность. SQL – язык непроцедурный. На нем можно написать, что нужно получить в результате запроса, но нельзя написать, как это сделать, то есть нельзя описать саму процедуру выполнения запроса. Дело в том, что реализация выполнения тех или иных операторов SQL серверами баз данных может быть различна, и в большинстве случаев неинтересна клиентскому приложению, создаваемому с помощью С++ Builder. В случае таблиц dBase или Paradox реализацию SQL берет на себя библиотека Borland Database Engine.

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

  • RequestLive - если это свойство имеет значение true и синтаксис запроса таков, что его результат может быть модифицируем, пользователь может редактировать данные с сохранением их в базе данных. Если RequestLive имеет значение false, результат запроса возвращается в состоянии read-only.

Наиболее  часто используются следующие методы компонента TQuery:

  • ExecSQL - выполняет SQL-запрос, содержащийся в свойстве SQL, если запрос не возвращает данные. Следует употреблять этот метод при вставке, редактировании или удалении данных. При выполнении же оператора SELECT (выбор данных) следует использовать метод Open. Следующий пример показывает применение метода ExecSQL:

Query1->Close();  
Query1->SQL->Clear();  
Query1->SQL->Add("Delete emp where empno=1010");  
Query1->ExecSQL();

  • Open - открывает компонент TQuery. Он эквивалентен присвоению свойству Active значения true. Используется, если результатом запроса является набор данных (такие запросы обычно начинаются с оператора SELECT). Пример использования метода Open:

Query1->Open();

  • Close - закрывает компонент TQuery. Вызов Close эквивалентен присвоению свойству Active значения false. Пример использования метода Close:

Query1->Close();

  • Prepare - обеспечивает передачу серверу баз данных запроса, содержащегося в свойстве SQL, для оптимизации и компиляции. Полный запрос с параметрами не передается, пока не вызваны методы Open или ExecSQL. Даже если метод Prepare не вызывается явно, он будет вызван неявно, если используются методы Open или ExecSQL (в этом можно убедиться, запустив утилиту SQL Monitor). Пример использования метода Prepare:

Query1->Close();  
Query1->SQL->Add("Delete emp where empno=:empno");  
Query1->Prepare();

Компоненты TQuery обладают большим разнообразием  методов, унаследованных от TDataSet. Наиболее часто используются следующие методы:

  • First, Last, Next, Prior перемещают указатель текущей записи на первую, последнюю, следующую и предыдущую записи соответственно, например:
  • MoveBy перемещает указатель на определенное количество строк.
  • Insert, Edit, Delete, Append, Post, Cancel - позволяют модифицировать результат запроса. Метод Insert позволяет вносить в результат запроса строки, как в следующем примере:

Query2->Insert();  
Query2->Fields[0]->AsInteger = 100;  
Query2->Fields[1]->AsString =Edit1->Text;  
Query2->Post();

Метод Post подтвержает  операции Insert, Update или Delete, совершая реальное физическое изменение в базе данных. Метод Cancel отменяет незавершенные операции Insert, Delete, Edit или Append.

  • FreeBookmark, GetBookmark, GotoBookmark- - позволяют создавать закладки (маркированные строки) в запросе и затем вернуться к такой строке позже.

Прежде чем  перейти к непосредственному  использованию запросов, следует  остановиться на весьма полезном инструменте - генераторе запросов Visual Query Builder, с помощью которого можно определить свойство SQL компонента TQuery, если по каким-либо причинам это неудобно делать непосредственно в редакторе свойств.

      Visual Query Builder

Visual Query Builder (VQB) является визуальным средством  для построения запросов, базирующихся на SQL. С помощью этого средства можно строить комплексные запросы, обладая некоторыми знаниями SQL или не имея таких знаний вовсе. Запросы строятся шаг за шагом путем последовательного добавления выражений, таблиц, полей и отношений, пока не получится требуемый результат.

    Visual Query Builder можно вызвать, выбирая  компонент TQuery и нажимая правую  кнопку мыши, после чего появляется  контекстное меню, из которого  следует выбрать опцию Query Builder.

    Примечание. Visual Query Builder входит в комплект поставки не всех версий Borland C++ Builder либо может быть не установлен. В этом случае в контекстном меню может не быть соответствующей опции.

    После выбора Query Builder на экране появится диалоговая панель Databases, позволяющая выбрать  БД и осуществить соединение с ней (рис. 1).

Рис. 1. Выбор псевдонима базы данных

    После соединения с базой данных на экран  выводится окно Visual Query Builder и диалоговая панель для выбора таблиц, используемых в запросе (рис. 2).

Рис.2. После соединения с БД появляется окно Visual Query Builder и диалоговая панель Add Table.

    Панель  инструментов Visual Query Builder позволяет  выбирать операции, которые можно  выполнить при создании, тестировании и просмотре текста запроса. Таблица 8.1 описывает назначения кнопок на панели инструментов Visual Query Builder:

Информация о работе BorlandC++Builder1