Визуальная разработка приложений баз данных в c++Builder


IndexFiles открывает диалог выбора индексного файла для таблицы. IndexName



Download 2,03 Mb.
bet6/12
Sana30.03.2022
Hajmi2,03 Mb.
#518220
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
C Builder

IndexFiles открывает диалог выбора индексного файла для таблицы.
IndexName задает правило отображаемых сортировки данных, отличное от упорядочивания по первичному ключу (primary key order).
Filter позволяет устанавливать критерий фильтрации, в соответствии с которым адресуется некоторое подмножество записей таблицы.
ReadOnly управляет правами доступа в процессе выполнения программы. Значение false разрешает запись по умолчанию.
MasterFields и MasterSource участвуют в образовании связи двух таблиц (ведущей и ведомой) по принципу master-detail. Следующая процедура иллюстрирует процесс создания простой формы для демонстрационной базы данных BCDEMOS, в которой пользователь может прокручивать записи таблицы заказчиков CUSTOMER с отображением всех заказов таблицы ORDERS, сделанных текущим заказчиком:дексного файла для таблицы.
IndexName задает правило отображаемых сортировки данных, отличное от упорядочивания по первичному ключу (primary key order).
Filter позволяет устанавливать критерий фильтрации, в соответствии с которым адресуется некоторое подмножество записей таблицы.
ReadOnly управляет правами доступа в процессе выполнения программы. Значение false разрешает запись по умолчанию.
MasterFields и MasterSource участвуют в образовании связи двух таблиц (ведущей и ведомой) по принципу master-detail. Следующая процедура иллюстрирует процесс создания простой формы для демонстрационной базы данных BCDEMOS, в которой пользователь может прокручивать записи таблицы заказчиков CUSTOMER с отображением всех заказов таблицы ORDERS, сделанных текущим заказчиком:

Модуль данных.

1. Выполните команду главного меню File | New Data Module, чтобы открыть контейнер нового модуля данных DataModule2. В этот модуль поместите две пары компонент доступа к базам данных TTable и TDataSource (Рис. 5.8).
2. Установите свойства объекта ведущей таблицы Tablet
DatabaseName = BCDEMOS TableName = CUSTOMER.DB Name = CustomersTable


Рис. 5.8. Модуль данных.

3. Установите свойства объекта ведомой таблицы Table2
DatabaseName = BCDEMOS TableName = ORDERS.DB Name = OrdersTable
4. Установите свойства объекта источника DataSourcel DataSet = CustomersTable Name = CustomersSource
5. Установите свойства объекта источника DataSource2 DataSet = OrdersTable Name = OrdersSource
6. Поместите на форму пару компонент управления сеткой TDBGrid.
7. Выполните команду File | Include Unit Hdr, чтобы указать, что данная форма должна использовать созданный модуль данных.
8. Установите свойство объекта первой сетки DBGridI
DataSource = DataModule2->CustomersSource и свойство объекта второй сетки DBGrid2
DataSource = DataModule2->OrdersSource
9. Активизируйте таблицу OrdersTable модуля данных и установите свойство
MasterSource = CustomersSource, чтобы связать ведущую таблицу CUSTOMER с ведомой таблицей ORDERS.
10. Дважды щелкните мышью в графе значений свойства MasterFields, и в открывшемся окне дизайнера связи полей
- выберите номер заказчика CustNo (связующее поле таблиц) из выпадающего списка Available Indexes;
- задайте CustNo в списках Detail Fields и Master Fields;
- нажмите кнопку Add, чтобы добавить в список Joined Fields соединение CustNo -> CustNo;
- нажмите кнопку OK, подтверждая сделанный выбор.
11. Установите свойство Active = true для таблиц CustomersTable и OrdersTable с тем, чтобы сразу же отобразить живые данные в сетках на форме.
12. Скомпилируйте и запустите приложение. Рис. показывает работу связанных таблиц: при прокрутке записей таблицы заказчиков вы увидите только те записи в таблице заказов, которые относятся к текущему заказчику.

Связь таблич по принципу muster-detail.
Методы Locate и Lookup используются для поиска указанных записей как в индексных таблицах, так в таблицах с ключами: эти методы реализуют самый быстрый из возможных способов поиска в данной таблице. Если столбцы для поиска индексированы и индекс совместим с указанными опциями, используется способ индексного поиска. В противном случае методы создают для BDE соответствующий фильтр.
Locate производит поиск специфической записи и позиционирует курсор на нее. В простейшем варианте вы передаете методу название столбца для поиска, искомое значение ключа записи и флаг опций. Листинг содержит фрагмент кода, обеспечивающего поиск в столбце "Имя" таблицы MyTable первой записи со значением "Иван". Если поиск завершился успешно. Locate возвращает значение true, и найденная запись становится текущей. Если искомая запись не найдена. Locate возвращает значение false, и позиция курсора не меняется.
( boot Success;
TLocateOptions Options;
Options “ loPartialKey;
Success = MyTable->Locate("Имя", "Иван", Options);
}
Листинг. Простейший пример использования метода Locate.
Возможности метода проявляются при поиске вариантных значений записи в нескольких столбцах таблицы. Обобщенный синтаксис описания метода имеет следующий вид:
bool _fastcall Locate(const AnsiString KeyFields, const Variant SKeyValues, TLocateOptions Options);
Lookup выбирает значения столбца той записи, которая удовлетворяет заданным значениям поиска. Позиция курсора не меняется. В простейшем варианте вы передаете методу название столбца для поиска, искомое значение ключа записи и возвращаемые поля этой записи. Листинг содержит фрагмент кода, обеспечивающего поиск в таблице MyTable первой записи, у которой в столбце "Фирма" имеется значение "Borland". Если поиск завершился успешно. Lookup возвращает в массиве типа Variant название фирмы, фамилию ее представителя и номер телефона. Если искомая запись не найдена. Lookup возвращает значение Null.
{
Variant Results;
Results = MyTable->Lookup("Фирма", "Borland",
"Фирма;Представитель;Телефон") ;
}
Листинг . Простейший пример использования метода Lookup.
Возможности метода проявляются при поиске вариантных значений полей записи в нескольких столбцах таблицы. Обобщенный синтаксис описания метода имеет следующий вид:
Variant _fastcall Lookup(const AnsiString KeyFields, const Variant sKeyValues, const AnsiString ResultFields);
Названия столбцов для поиска разделяются в текстовой строке параметра KeyFields символом точка с запятой.
С компонентой TTable также связаны следующие методы:
• GotoCurrent синхронизирует перемещения курсора по нескольким табличным компонентам, ассоциированным с одной и той же фактической таблицей базы данных.
• First, Next, Prior, Last и MoveBy используются для навигации по данным таблицы.
• SetKey, FindKey, FindNearest, GotoKey и GotoNearest используются для поиска по специфическим значениям ключей.
• Append, Insert, AppendRecord и InsertRecord добавляют новую запись к таблице. Delete вычеркивает текущую запись. Edit разрешает приложению модифицировать записи, a Post вызывает фактическое изменение содержимого базы данных.
• EditRangeStart, EditRangeEnd, SetRangeStart, SetRangeEnd, ApplyRange и SetRange устанавливают границы интервала адресов записей, возвращаемых приложению при групповом доступе
Запросы
Компоненты таблиц являются полноправными, гибкими и легкими в использовании компонентами доступа, достаточными для многих приложении СУБД. TTable возвращает все строки и столбцы единственной таблицы, если доступ не ограничивается установкой интервалов и фильтров. Компоненты запросов предоставляют разработчикам альтернативные возможности. TQuery обеспечивает доступ к нескольким таблицам одновременно и способна адресовать некоторое подмножество записей. Вид возвращаемого набора данных (result set) зависит от формы запроса, который может быть либо статическим, когда все параметры запроса задаются на стадии проектирования, или динамическим, когда параметры определяются во время выполнения программы.
Указанные действия записываются и реализуются на стандартизованном языке структурированных запросов SQL (Structured Query Language), принятом большинством удаленных серверов реляционных баз данных, таких как Sybase, Oracle, InterBase и SQL Server. Ha SQL можно сформулировать весьма изощренные запросы к базам данных. C++Builder передает запросы серверу, который интерпретирует их и возвращает результаты вашему приложению.
A ctive разрешает или запрещает режим просмотра "живых данных", возвращаемых запросом на этапе проектирования. Значение false устанавливается по умолчанию.
DatabaseName содержит псевдоним базы данных или полный путь к ее каталогу, необходимые для разрешения запроса.

Download 2,03 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish