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. ?