Kapcsolat az adatab zishoz el k sz letek
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

Kapcsolat az adatabázishoz - Előkészületek PowerPoint PPT Presentation


  • 44 Views
  • Uploaded on
  • Presentation posted in: General

Kapcsolat az adatabázishoz - Előkészületek. // Implementation public: void ReleaseDataBase(); void ConnectDataBase(CString s); virtual ~CBankDoc(); protected : Connection* con;. BankDoc.h. void CBankDoc::ConnectDataBase(CString s) { con = new Connection(s); }

Download Presentation

Kapcsolat az adatabázishoz - Előkészületek

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Kapcsolat az adatab zishoz el k sz letek

Kapcsolat az adatabázishoz - Előkészületek

// Implementation

public:

void ReleaseDataBase();

void ConnectDataBase(CString s);

virtual ~CBankDoc();

protected:

Connection* con;

BankDoc.h

void CBankDoc::ConnectDataBase(CString s)

{

con = new Connection(s);

}

void CBankDoc::ReleaseDataBase()

{

if (con>0) delete con;

}

BankDoc.cpp


Lek rdez s a r kapcsol d s ut n

Lekérdezés a „rákapcsolódás” után

Létrehozunk Query tipusú query objektumot.

Query query = con->query();

A query objektumban „összeálítjuk” az SQL parancsot.

query << "select * from ugyfel order by refszam";

Végrehajtatjuk a lekérdezést és az eredményt tároljuk.

Result res = query.store();

A Result osztály iterátorával kiolvasgatjuk az eredményt.

CListCtrl list;

Row row;

Result::iterator iter;

int j=0;

for (iter = res.begin(); iter != res.end(); iter++) {

row = *iter;

list.InsertItem(j,row[0]);

list.SetItemText(j,1,row[1]);

. . .

j++;

}


A dokumentum oszt ly adatb zis kezel st t mogat adattagjai

A dokumentum osztály adatbázis-kezelést támogató adattagjai

protected:

Result res;// az eredmény

Connection* con;// a kapcsolat

Result::iterator iResult;// az eredményt bejáró iterátor

iResult


A dokumentum oszt ly adatb zis kezel st t mogat met dusai

A dokumentum osztály adatbázis-kezelést támogató metódusai

  • ConnectDataBase(CString s)

  • „Összekapcsolja” programunkat az adatbázissal.

  • ReleaseDataBase()

  • „Bontja” az adatbázis kapcsolatot.

  • ExecuteQuery(CString q)

  • Végrehajtja a lekérdezést és tárolja az eredményt.

  • Count()

  • Visszaadja az eredmény rekordok számát.

  • GetCurrentItem(Ugyfel &uf)

  • Visszaadja az aktuális ügyfél adatait.

  • MoveFirst()

  • „Rááll” az eredmény első rekordjára.

  • MoveNext()

  • „Rááll” az aktuális ügyfélt követő rekordra.


Dokumentum oszt ly executequery cstring q

Dokumentum osztály: ExecuteQuery(CString q)

BankDoc.h

1

public:

. . .

bool ExecuteQuery(CString q);

. . .

Worksapce/ClassView/Jobb egérfül/

Add Member Functions

BankDoc.cpp

bool CBankDoc::ExecuteQuery(CString q)

{

try {

Query query = con->query();

query << q;

res = query.store();

} catch (BadQuery er){

cerr << "Error: " << er.error << endl;

returnfalse;

}

iResult=res.begin();

returntrue;

}

Végrehajtja a q stringben megadott lekérdezést és tárolja az eredményt.

2


Dokumentum oszt ly count

Dokumentum osztály: Count()

BankDoc.h

1

public:

. . .

int Count();

. . .

Worksapce/ClassView/Jobb egérfül/

Add Member Functions

BankDoc.cpp

int CBankDoc::Count()

{

return res.end() - res.begin();

}

2

Visszaadja az eredményül kapott rekordok számát.


Dokumentum oszt ly getcurrentitem ugyfel uf

Dokumentum osztály: GetCurrentItem(Ugyfel &uf)

BankDoc.h

public:

. . .

void GetCurrentItem(Ugyfel &uf);

. . .

1

Worksapce/ClassView/Jobb egérfül/

Add Member Functions

BankDoc.cpp

voidCBankDoc::GetCurrentItem(Ugyfel &uf)

{

Row row;

row=*iResult;

uf.SetRefszam((int) row[0]);

uf.SetNev((CString)row[1]);

uf.SetCim((CString)row[2]);

uf.SetStatus((CString)row[3]);

}

2

Visszaadja az aktuális ügyfél adatait.


Dokumentum oszt ly movefirst

Dokumentum osztály: MoveFirst()

1

BankDoc.h

Worksapce/ClassView/Jobb egérfül/

Add Member Functions

public:

. . .

bool MoveFirst();

. . .

BankDoc.cpp

bool CBankDoc::MoveFirst()

{

iResult = res.begin();

if ( iResult == res.end() )

return(false);

else return(true);

}

„Rááll” az eredmény első rekordjára. A visszatérési érték true,ha van ilyen, false egyébként.

2


Dokumentum oszt ly movenext

Dokumentum osztály: MoveNext()

1

BankDoc.h

Worksapce/ClassView/Jobb egérfül/

Add Member Functions

public:

. . .

bool MoveNext();

. . .

BankDoc.cpp

bool CBankDoc::MoveNext()

{

if (iResult == res.end()) return (false);

iResult++;

if (iResult == res.end()) return (false);

returntrue;

}

2

„Rááll” az aktuális ügyfélt követő rekordra. A visszatérési értéktrue, ha van ilyen, false egyébként.


N zet oszt ly cbankview

Nézet osztály - CBankView

CBankView

CBankDoc

void CBankView::OnInitialUpdate()

{

. . .

CBankDoc* pDoc = GetDocument();

pDoc->ConnectDataBase("Bank");

. . .

}

A nézetosztályból a dokumentumosztály metódusait a GetDocument()-en keresztül érhetjük el.


Lista t pus

Lista típus

WS_VISIBLE:Az ablak azonnal legyen látható

WS_CHILD:Az ablak legyen gyerekablak

LVS_REPORT: A lista legyen táblázat

LVS_SINGLESEL:Egyszerrecsak egy listaelemet lehet kiválasztani


Lista t pus msdn haszn lata

Lista típus – MSDN használata


Lista t pus be llt sa precreatewindow

Lista típus beálltása: PreCreateWindow

BOOL CBankView::PreCreateWindow(CREATESTRUCT& cs)

{

// TODO: Modify the Window class or styles here by modifying

// the CREATESTRUCT cs

cs.style=WS_VISIBLE|WS_CHILD|LVS_REPORT|LVS_SINGLESEL;

return CListView::PreCreateWindow(cs);

}

typedef struct tagCREATESTRUCT {

LPVOIDlpCreateParams;

HANDLEhInstance;

HMENUhMenu;

HWNDhwndParent;

Intcy;

Intcx;

Inty;

Intx;

LONGstyle;

LPCSTRlpszName;

LPCSTRlpszClass;

DWORDdwExStyle;} CREATESTRUCT;


A lista kit lt s t t mogat met dusok

A lista kitöltését támogató metódusok

void CBankView::FillHeader()

Felépíti a listánkat.

void CBankView::FillData()

Kitölti a listánkat az adatbázis adataival.

FillHeader

FillData


Getlistctrl

GetListCtrl ()

A CBankView osztályhoz tartozó listát (melynek típusa CListCtrl) a GetListCtrl() metóduson keresztül érhetjük el.

vagy:

GetListCtrl()->InsertColumn(1,"Refszám",LVCFMT_LEFT,100);

. . .

vagy:

CListCtrl* pList = &GetListCtrl();

pList->InsertColumn(1,"Refszám",LVCFMT_LEFT,100);

. . .


N zet oszt ly fillheader

Nézet osztály: FillHeader()

Worksapce/ClassView/Jobb egérfül/

Add Member Functions

BankView.h

public:

. . .

voidFillHeader();

. . .

1

BankView.cpp

void CBankView::FillHeader(){

CListCtrl* pList = &GetListCtrl();

pList->SetExtendedStyle

(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES

|LVS_EX_HEADERDRAGDROP);

pList->InsertColumn(1,"Refszám",LVCFMT_LEFT,100);

pList->InsertColumn(2,"Név",LVCFMT_LEFT,100);

pList->InsertColumn(3,"Cim",LVCFMT_LEFT,100);

pList->InsertColumn(4,"Státusz",LVCFMT_LEFT,100);

}

2


Msdn haszn lata

MSDN használata


N zet oszt ly filldata

Nézet osztály: FillData()

Worksapce/ClassView/Jobb egérfül/

Add Member Functions

BankView.h

public:

. . .

voidFillData();

. . .

1

BankView.cpp

void CBankView::FillData(){

}

2


N zet oszt ly filldata1

Nézet osztály: FillData()

BankView.cpp

void CBankView::FillData(){

Ugyfel uf;

CListCtrl* pList= &GetListCtrl();

CBankDoc* pDoc = GetDocument();

pDoc->ExecuteQuery("select * from ugyfel;");

pDoc->MoveFirst();

for (int i=0; i<pDoc->Count(); i++){

pDoc->GetCurrentItem(uf);

CString str;

str.Format("%d",uf.Refszam());

pList->InsertItem(i,str);

pList->SetItemText(i,1,uf.Nev());

pList->SetItemText(i,2,uf.Cim());

pList->SetItemText(i,3,uf.Status());

pDoc->MoveNext();

}

}

2


R kapcsol d s az adatb zisra n zet oszt ly oninitialupdate

Rákapcsolódás az adatbázisraNézet osztály:OnInitialUpdate()

BankView.cpp

void CBankView::OnInitialUpdate()

{

CListView::OnInitialUpdate();

// TODO: You may populate your ListView with items by directly accessing

// its list control through a call to GetListCtrl().

CBankDoc* pDoc = GetDocument();

pDoc->ConnectDataBase("Bank");

FillHeader();

FillData();

}

1


Lekapcsol d s az adatb zisr l n zet oszt ly oninitialupdate

Lekapcsolódás az adatbázisrólNézet osztály:OnInitialUpdate()

BankView.cpp

void CBankView::OnFinalRelease()

{

// TODO: Add your specialized code here and/or call the base class

GetDocument()->ReleaseDataBase();

CListView::OnFinalRelease();

}

1


Kapcsolat az adatab zishoz el k sz letek

MySQL


Kapcsolat az adatab zishoz el k sz letek

Vége


  • Login