Logo Host-telecom.com — профессиональный хостинг в Европе! Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

💰 Самые низкие цены на домены

🔒 Отличный хостинг на SSD c бесплатными SSL

💻 Огромнейший выбор dedicated выделенных серверов

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VDS хостинг Облачный сервер в Нидерландах и Украине

Аренда виртуального сервера от $7.91

Партнёрская программа
$20 за клиента

Wildcard сертификаты от $74,97 в год.

Дешевые ssl сертификаты для домена

Sectigo сертификаты от $7,67 в год.

Пример использования компонента TQuery

Попробуем применить полученные сведения для создания приложения, использующего компоненты TTable, TQuery, TDataSource, TDBGrid. Воспользуемся для этой цели таблицами Customer.db и Orders.db, имеющимися в базе данных BCDEMOS, входящей в комплект поставки Borland C++ Builder. Данное приложение должно будет выводить списки клиентов из таблицы Customer, их заказов из таблицы Orders, а также позволять выбирать диапазон номеров клиентов.

Создадим новый проект и сохраним его главную форму как CUST1.CPP, а проект как CUST.MAK.

Изменим заголовок заголовок формы на "Контроль заказов". Разместим на форме компонент TDBGrid, два компонента TGroupBox, один компонент TTable, два компонента TQuery, три компонента TDataSource. На компонент GroupBox1 поместим три компонента TRadioButton и два компонента TButton. На компонент GroupBox2 поместим два компонента TEdit, два компонента TEdit и один компонент TButton.

Рис. 11. Расположение компонентов на форме приложения CUST

Установим следующие свойства для этих компонентов:

Имя компонентаСвойствоЗначение
Table1DatabaseNameBCDEMOS
 TableNameCUSTOMER.DB
 Activefalse
DataSource1DataSetTable1
DBGrid1DataSourceDataSource1
Query1Database NameBCDEMOS
 SQLselect * from orders
 Activefalse
DataSource2DataSetQuery1
Query2DatabaseNameBCDEMOS
DataSource3DataSetQuery2
Button1CaptionОткрыть список &клиентов
Button2CaptionОткрыть список &заказов
RadioButton1CaptionКлиенты
 Checkedtrue
RadioButton2CaptionЗаказы
GroupBox1Caption 
GroupBox2Caption 
Button3CaptionУстановить &диапазон
Edit1Text 
Edit2Text 
Label1CaptionНачало:
Label2CaptionКонец:
RadioButton3CaptionЗаказы клиентов

Создадим обработчик события OnClick для кнопки Button1:

	void __fastcall TForm1::Button1Click(TObject *Sender)
	{
	if (Table1->Active)
	{
	Table1->Close();
	Button1->Caption = "Ioe?uou nienie &eeeaioia";
	}
	else
	{
	Table1->Open();
	Button1->Caption= "Cae?uou nienie &eeeaioia";
	}
	} 

Теперь при нажатии на эту кнопку таблица Customer будет то открываться, то закрываться, при этом будет изменяться и надпись на кнопке.

Создадим обработчик события OnClick для кнопки Button2:

	void __fastcall TForm1::Button2Click(TObject *Sender)
	{
	if (Query1->Active)
	{
	Query1->Active = false;
	Button2->Caption = "Ioe?uou список &caeacia";
	}
	else
	{
	Query1->Active = true;
	Button2->Caption = "Заe?uou список &caeacia";
	}
	}

При нажатии на кнопку Button2 будет то открываться, то закрываться запрос Query1, содержащий список заказов:

Создадим обработчики событий OnClick для радиокнопок RadioButton1 и RadioButton2:

	void __fastcall TForm1::RadioButton1Click(TObject *Sender)
	{
	DBGrid1->DataSource = DataSource1;
	}
	//------------------------------------------------------------------------
	void __fastcall TForm1::RadioButton2Click(TObject *Sender)
	{
	DBGrid1->DataSource =DataSource2;
	}

Теперь с помощью этих радиокнопок можно переключаться между списком клиентов и списком заказов.

Создадим обработчик события OnClick для кнопки Button3:

	void __fastcall TForm1::Button3Click(TObject *Sender)
	{
	if (Table1->Active)
	{
	Table1->SetRangeStart();
	Table1->Fields[0]->AsString = Edit1->Text;
	Table1->SetRangeEnd();
	Table1->Fields[0]->AsString = Edit2->Text;
	Table1->ApplyRange();
	}
	}

Теперь с помощью полей редактирования Edit1 и Edit2 и кнопки Button3 можно выбрать диапазон номеров клиентов для отображения сведений о них в DBGrid1.

Затем с помощью Visual Query Builder установим свойство SQL компонента Query2. Выберем в качестве имени базы данных BCDEMOS и внесем в запрос таблицы CUSTOMER и ORDERS. Затем установим связь между таблицами, проведя линию от поля CustNo в таблице CUSTOMER к полю CustNo в таблице ORDERS.

Внесем в запрос следующие поля:

  • Customer.CustNo
  • Customer.Company
  • Orders.OrderNo
  • Orders.AmountPaid

Рис. 12. Использование Visual Query Builder для создания комбинированного запроса

Теперь отсортируем результаты запроса по номеру покупателя и выйдем из Visual Query Builder.

Используя инспектор объектов, выберем компонент Query2 и установим его свойство Active равным true.

Создадим обработчик события OnClick для RadioButton3:.

	void __fastcall TForm1::RadioButton3Click(TObject *Sender)
	{
	DBGrid1->DataSource= DataSource3;
	}

Скомпилируем приложение. Щелкнем кнопками и "Открыть список заказов", чтобы открыть оба набора данных. Попробуем, используя радиокнопки, переключаться между ними.

Рис. 13. Так выглядит готовое приложение

Нажмем кнопку "Открыть список клиентов". Введем значения полей "Начало" и "Конец" (например, 1200 и 1700 соответственно) и затем нажмем кнопку "Установить диапазон". Убедимся, что значения номеров заказов действительно находятся в пределах этого диапазона.

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

Назад | Содержание | Вперед

хостинг Украина Виртуальный хостинг для сайта от $4,87

Регистрация домена от $2 в год

Партнерская программа – $20 за клиента

VPS с гибкой конфигурацией: за 1€

Мощные выделенные сервера: от 25€

Собственный Дата-Центр
Поддержка 24/7

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

ATLEX Выделенные серверы: в Европе / в России.

Виртуальные серверы: в Европе / в России.

Партнерская программа

Ваш сайт в 8 раз быстрее конкурентов. Хостинг от $2.95

VPS: SSD, KVM, бесплатные бэкапы и администрирование

Все необходимое для вашего сайта и лучшая техподдержка 24/7

хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...