Kapcsolat az adatabázishoz - Előkészületek // Implementation public: void ReleaseDataBase(); void ConnectDataBase(CString s); virtual ~CBankDoc(); protected:

Slides:



Advertisements
Hasonló előadás
Osztály leszármaztatás
Advertisements

2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Anyagadatbank c. tárgy gyakorlat
15. tétel Adatbázis felhasználói és jogosultságaik
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Számold meg a fekete pontokat!
Objektum Orientált Programozás Visual Basicben. 2 Objektumok Object – egy dolog, tárgy, „valami” –Command button, text box, stb. Jellemzők –Properties.
Adatbázisok / SQL v 2.1 Viczián Gergely (eredeti: Török János 2004)
Szárnyas Gábor október 11.
Készítsünk el egy olyan egy dokumentumos (SDI) alkalmazást, amely alkalmas a mysql adatbáziskezelővel létrehozott BANK adatbázisunk UGYFEL táblájának.
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Adatbázisok-SQL Dr. Viczián Gergely (Dr. Török János V2.0)
Az objektum-orientált tervezési alapelvek kritikai vizsgálata
Adatbáziskezelés Horváth Ernő.
Ellenőrző kérdések a)Auto-indexing enabled b)Auto-indexing disabled c)Nem eldönthető 1.
A Java programozási nyelvSoós Sándor 1/20 Java programozási nyelv 11. rész – Adatbázis-programozás Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
A C++ programozási nyelvSoós Sándor 1/14 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
Krizsán Zoltán iit 1.2.  Nem kell vizuális felületnek lennie.  Delegátumok segítségével valósíthatja meg a.NET. Krizsán Zoltán iit Delegátumok C#-ban2.
ADATBÁZISOK
Érettségi feladatok megoldása LINQ-kel
Oktassunk adatbázis-kezelést! Micskei Zoltán Microsoft Referencia Iskola.
Iskolai internetbiztonsági prevenciós programok – a rendőrség szerepe a felvilágosításban Internet safety preventions at schools – the role of Police in.
Az SQL nyelv alapjai.
Java – adatbázisok elérése
Adatkezelés Ez az előadó neve beosztása vállalata.
Adatkezelés ABC: A Create Table-től a megjelenítésig Árvai Zoltán Consultant, Trainer Számalk Oktatóközpont.
Lekérdezések Páll Boglárka A lekérdezés az adatbázisban szereplő adatok kinyerésének leghatékonyabb és legsokrétübb módja A lekérdezés tulajdonképpen.
Adatbázis adminisztrátori ismeretek
Felhasználók és jogosultságok
Készítette: Tóth Ervin
Fejlesztés PHP-NUKE portál rendszerre Horváth Zoltán Második Magyarországi PHP Konferencia március 27. Copyright PHP Konferencia,
Objektum orientált programozás a gyakorlatban
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
Innovatív elemek a SKA végrehajtásban Innovative elements in SCF implementation.
Adatbázis-kezelés Tarcsi Ádám január. 15. MySQL és PHP.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
5. gyakorlat Fleiner Rita.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
SQL történelem 1970 Edgar F. Codd (IBM) cikke 12 szabály a relációs adatmodellekre 1979 első kereskedelmi forgalmazású relációs adatbáziskezelő 1986 az.
Számítógépes adatbázis-kezelés
Haladó Programozás Adatbázis-elérési módszerek összehasonlítása
Ficsor Lajos CPP2 / 1 Származtatási mechanizmus a C++ nyelvben Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
Szebb és használhatóbb programok Vezérlőelemek dinamikus felhelyezése.
Excel programozás (makró)
Ficsor Lajos Objektumok inicializálása CPP4 / 1 Objektumok inicializálása Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
Készítsünk el egy olyan egy dokumentumos (SDI) alkalmazást, amely alkalmas a mysql adatbáziskezelővel létrehozott BANK adatbázisunk UGYFEL táblájának.
ATM VONATKOZÁSÚ ESEMÉNYEK KBSZ SZAKMAI NAPOK- REPÜLÉS Siófok, április 8. Pál László balesetvizsgáló.
ZooGuide – az ismeretterjesztés és az oktatás eszköze  Érdekes és részletes leírások a park állatairól  „Audioguide” funkcióval kiegészített virtuális.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
„Tisztább kép” – együttműködési program Az új szintetikus drogok feltérképezéséért Tamás Figeczki Budapest, 19 April 2016 ‚Breaking the drug cycle’ - joint.
Szoftvergyártás: gyártás- vezérlés kód-figyeléssel Előadó: Banai Miklós és Rakyta Péter.
The new waves of modernisation of the Hungarian PES
Excel programozás (makró)
Adatbázisok SQL.
Kutatási célú szakmai ösztöndíj beszámoló
PHP-SQL adatbáziskezelő parancsai
Ruletták a Minkowski síkon
Web programozás és haladó fejlesztési technikák – C#
The new waves of modernisation of the Hungarian PES
Microsoft SQL licenselés a gyakorlatban
3. osztályban.
Cím elrendezés Alcím.
Számold meg a fekete pontokat!
Függvénysablonok használata
Előadás másolata:

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 1.Létrehozunk Query tipusú query objektumot. Query query = con->query(); 2.A query objektumban „összeálítjuk” az SQL parancsot. query << "select * from ugyfel order by refszam"; 3.Végrehajtatjuk a lekérdezést és az eredményt tároljuk. Result res = query.store(); 4.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 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 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) bool CBankDoc::ExecuteQuery(CString q) { try { Query query = con->query(); query << q; res = query.store(); } catch (BadQuery er){ cerr << "Error: " << er.error << endl; return false; } iResult=res.begin(); return true; } Végrehajtja a q stringben megadott lekérdezést és tárolja az eredményt. public :... bool ExecuteQuery(CString q);... BankDoc.h BankDoc.cpp Worksapce/ClassView/Jobb egérfül/ Add Member Functions  1 2

Dokumentum osztály: Count() int CBankDoc::Count() { return res.end() - res.begin(); } Visszaadja az eredményül kapott rekordok számát. public :... int Count();... BankDoc.h BankDoc.cpp Worksapce/ClassView/Jobb egérfül/ Add Member Functions  1 2

Dokumentum osztály: GetCurrentItem(Ugyfel &uf) void CBankDoc::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]); } Visszaadja az aktuális ügyfél adatait. public:... void GetCurrentItem(Ugyfel &uf);... BankDoc.h BankDoc.cpp Worksapce/ClassView/Jobb egérfül/ Add Member Functions  1 2

Dokumentum osztály: MoveFirst() 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. public:... bool MoveFirst();... BankDoc.h BankDoc.cpp Worksapce/ClassView/Jobb egérfül/ Add Member Functions  1 2

Dokumentum osztály: MoveNext() bool CBankDoc::MoveNext() { if (iResult == res.end()) return ( false ); iResult++; if (iResult == res.end()) return ( false ); return true; } „Rááll” az aktuális ügyfélt követő rekordra. A visszatérési értéktrue, ha van ilyen, false egyébként. public:... bool MoveNext();... BankDoc.h BankDoc.cpp Worksapce/ClassView/Jobb egérfül/ Add Member Functions  1 2

Nézet osztály - CBankView CBankViewCBankDoc 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 WS_VISIBLE: Az ablak azonnal legyen látható WS_CHILD: Az ablak legyen gyerekablak LVS_REPORT: A lista legyen táblázat LVS_SINGLESEL: Egyszerre csak egy listaelemet lehet kiválasztani

Lista típus – MSDN használata

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 tag CREATESTRUCT { LPVOIDlpCreateParams; HANDLEhInstance; HMENUhMenu; HWNDhwndParent; Intcy; Intcx; Inty; Intx; LONGstyle; LPCSTRlpszName; LPCSTRlpszClass; DWORDdwExStyle;} CREATESTRUCT;

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 () CListCtrl* pList = &GetListCtrl(); pList->InsertColumn(1,"Refszám",LVCFMT_LEFT,100);... A CBankView osztályhoz tartozó listát (melynek típusa CListCtrl) a GetListCtrl() metóduson keresztül érhetjük el. GetListCtrl()->InsertColumn(1,"Refszám",LVCFMT_LEFT,100);... vagy:

Nézet osztály: FillHeader() 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); } public:... void FillHeader();... BankView.h BankView.cpp Worksapce/ClassView/Jobb egérfül/ Add Member Functions  1 2

MSDN használata

Nézet osztály: FillData() void CBankView::FillData() { } public:... void FillData();... BankView.h BankView.cpp Worksapce/ClassView/Jobb egérfül/ Add Member Functions  1 2

Nézet osztály: FillData() void CBankView::FillData() { Ugyfel uf; CListCtrl* pList= &GetListCtrl(); CBankDoc* pDoc = GetDocument(); pDoc->ExecuteQuery("select * from ugyfel;"); pDoc->MoveFirst(); for (int i=0; i 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(); } BankView.cpp  2

Rákapcsolódás az adatbázisra Nézet osztály: OnInitialUpdate() 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(); } BankView.cpp  1

Lekapcsolódás az adatbázisról Nézet osztály: OnInitialUpdate() void CBankView::OnFinalRelease() { // TODO: Add your specialized code here and/or call the base class GetDocument()->ReleaseDataBase(); CListView::OnFinalRelease(); } BankView.cpp  1

MySQL