Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Задание №4. 1. Откройте новое приложение




1. Откройте новое приложение. Создайте модуль данных (DMod) и поместите в него три компонента TQuery и один компонент TDataSourse.

2. Для первого компонента TQuery установите значения в свойстве DatabaseName значение используемого псевдонима, свойстве Name –CountryQuery, SQL- select * from country, Active- True, RequestLlive- false.

3. Для компонента TDataSource установите значения в свойствах: Name –CountrySource, DataSet –CountryQuery.

4. Для второго компонента TQuery установите значения в свойствах: DatabaseName - значение псевдонима, Name- InsertQuery, SQL –

insert

into Country (Name, Capital, Continent, Area, Population)

values (:Name,:Capital,:Continent,:Area,:Population)

Active –false. Убедитесь, что в свойстве Params –заданы имена переменных.

5. Для третьего компонента TQuery установите значения в свойствах: DatabaseName - значение псевдонима, Name- DeleteQuery, SQL –

delete from Country

where Name =:Name

Active -false

6. Включите модуль данных в основной.

7. Расположите в форме Form1 (SQL Insert) в верхней части компонент TPanel с двумя кнопками TBitBtn, в нижней части сетку TDBGrid.

 

 

 

8. Задайте свойства для панели Align- alTop

9. Для первой кнопки задайте свойство Caption- Insert, Name –bbInsert, Glyph –выберите изображение.

10. Для второй кнопки установите свойство Caption- Delete, Name –bbDelete, Glyph –выберите изображение.

11. Для сетки установите свойство Align- alClient и выберите из списка источник данных. (DMod->CountySource)

12. Для модуля данных используется следующий код [3]:

///////////////////////////////////////

// File: DMod1.cpp

#include <vcl\vcl.h>

#pragma hdrstop

#include "DMod1.h"

#pragma resource "*.dfm"

 

TDMod *DMod;

 

__fastcall TDMod::TDMod(TComponent* Owner)

: TDataModule(Owner)

{

}

 

void TDMod::FakeRefresh()

{

TBookmark Bookmark = CountryQuery->GetBookmark();

CountryQuery->Close();

CountryQuery->Open();

CountryQuery->GotoBookmark(Bookmark);

CountryQuery->FreeBookmark(Bookmark);

}

 

void TDMod::AutoInsert(void)

{

InsertQuery->Prepare();

InsertQuery->Params->Items[0]->AsString = "Израйль";

InsertQuery->Params->Items[1]->AsString = "Тель-Авив";

InsertQuery->Params->Items[2]->AsString = "Азия";

InsertQuery->Params->Items[3]->AsFloat = 0.0;

InsertQuery->Params->Items[4]->AsFloat = 1.0;

InsertQuery->ExecSQL();

//CountryQuery->Refresh();

FakeRefresh();

}

void TDMod::Delete(void)

{

AnsiString S("Delete " + CountryQuery->Fields->Fields[0]->AsString + "?");

if (MessageDlg(S, mtConfirmation,

TMsgDlgButtons() << mbYes << mbNo, 0)!= ID_YES)

return;

DeleteQuery->Prepare();

DeleteQuery->Params->Items[0]->AsString = CountryQuery->Fields->Fields[0]->AsString;

DeleteQuery->ExecSQL();

//CountryQuery->Refresh();

FakeRefresh();

}

 

Заголовочный файл:

#ifndef DMod1H

#define DMod1H

 

#include <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\DBTables.hpp>

#include <vcl\DB.hpp>

#include <Db.hpp>

 

class TDMod: public TDataModule

{

__published:

TQuery *InsertQuery;

TQuery *DeleteQuery;

TQuery *CountryQuery;

TDataSource *CountrySource;

private:

void FakeRefresh();

public:

virtual __fastcall TDMod(TComponent* Owner);

void AutoInsert(void);

void Delete(void);

};

 

extern TDMod *DMod;

 

#endif

12. Определите для кнопок процедуры нажатия [3]:

#include <vcl\vcl.h>

#pragma hdrstop

 

#include "Main.h"

#include "DMod1.h"

 

#pragma resource "*.dfm"

TForm1 *Form1;

 

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

 

void __fastcall TForm1::bbInsertClick(TObject *Sender)

{

DMod->AutoInsert();

}

 

void __fastcall TForm1::bbDeleteClick(TObject *Sender)

{

DMod->Delete();

}

///Заголовочный файл

//

#ifndef MainH

#define MainH

 

#include <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\DBGrids.hpp>

#include <vcl\Grids.hpp>

#include <vcl\ExtCtrls.hpp>

#include <vcl\Buttons.hpp>

 

class TForm1: public TForm

{

__published:

TDBGrid *DBGrid1;

TPanel *Panel1;

TBitBtn *bbInsert;

TBitBtn *bbDelete;

void __fastcall bbInsertClick(TObject *Sender);

void __fastcall bbDeleteClick(TObject *Sender);

private:

public:

virtual __fastcall TForm1(TComponent* Owner);

};

 

extern TForm1 *Form1;

 

#endif

 

Контрольные вопросы

 

1. Как можно связать данные из главной и подчиненной таблиц?

2. Каким образом выполняются запросы на вставку и удаление?

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 465 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наглость – это ругаться с преподавателем по поводу четверки, хотя перед экзаменом уверен, что не знаешь даже на два. © Неизвестно
==> читать все изречения...

2675 - | 2239 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.