Elemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália
|
|
- Liliána Hegedüs
- 4 évvel ezelőtt
- Látták:
Átírás
1 Elemi alkalmazások fejlesztése IV. Adatbáziskezel ő alkalmazás készítése QtDesignerben Készítette: Szabóné Nacsa Rozália 1
2 Származtatásos modulszerkezet Q t form.ui U formbase.h Örökl ő dés form.h formbase.cpp form.cpp main.cpp Írás, olvasás Olvasás Generálás #includes Eszköz (tool) Generált forráskód Felhasználó forráskódja A formbase.h és a formbase.cpp minden módosításnál újra generálódik. Az alkalmazásspecifikus funkciókat a származtatott osztályban adjuk meg. 2
3 Származtatásos modulszerkezet Q t form.ui U formbase.h Örökl ő dés form.h saját formbase.cpp form.cpp main.cpp Írás, olvasás Olvasás Generálás #includes Eszköz (tool) Generált forráskód Felhasználó forráskódja saját Kiküszöbölhetnénk az öröklődést, ha úgy tudnánk beleírni a formbase.h és formbase.cpp fájlokba, hogy a generálás a kiegészítést nem rontaná el. 3
4 ui.h -s modulszerkezet form.ui.h Qt designer form.ui Az alkalmazásspecifius funkciókat a form.ui.h implementációs fájlban adjuk meg. U form.h Írás, olvasás Olvasás Generálás #includes Eszköz (tool) Generált forráskód Felhasználó forráskódja form.cpp main.cpp 4
5 A QtDesigner ablakai ProjectOverview Toolbox ObjectExplorer Properties Editor/ Signal Handlers 5
6 Feladat Új csoportok felvétele, bejegyzett csoportok módosítása, törlése. 6
7 Feladat a megvalósítás lépései 1 2 Új csoportok felvétele, bejegyzett csoportok módosítása, törlése. F ablak + félév tábla létrehozása ő Csoport tábla elkészítése Gombok hozzáadása, dialógus elkészítése 3 7
8 FelevDataTable (QDataTable) primeinsert() beforeupdate() currentchanged() beforeinsert() A CsoportRegistrationForm osztálydiagramja CsoportRegistrationForm (QDialog) EditCsoportForm (QDialog) CsoportDataTable (QDataTable) primeinsert() cursorchanged() EditPushButton (QPushButton) clicked() QuitPushButton (QPushButton) clicked() 8
9 Új projekt létrehozása: File/New/C++ Project 9
10 Project Overview: csopreg.pro 10
11 Project/Database connections
12 Projekt és adatbázis leíró tárolása A projektet leíró text fájl Adatbázist leíró XML fájl 12
13 connection modul létrehozása File/New connection.h File/New connection.cpp Az alkalmazás adatbáziskapcsolatát nekünk kell kiépíteni. 13
14 #define DB_SOURCE_DRIVER "QMYSQL3" #define DB_SOURCE_DBNAME "eaf" #define DB_SOURCE_USER "nacsa" #define DB_SOURCE_PASSWD "1234" #define DB_SOURCE_HOST "localhost" bool createconnections(); connection.h connection.cpp #include <qsqldatabase.h> #include "connection.h" bool createconnections() { QSqlDatabase *source = QSqlDatabase::addDatabase( DB_SOURCE_DRIVER); source->setdatabasename( DB_SOURCE_DBNAME ); source->setusername( DB_SOURCE_USER ); source->setpassword( DB_SOURCE_PASSWD ); source->sethostname( DB_SOURCE_HOST ); if (! source->open() ) { qwarning( "Az adatbázist nem sikerült megnyitni: " + source->lasterror().drivertext() ); qwarning( source->lasterror().databasetext() ); return FALSE; } return TRUE; } 14
15 File/New/Dialog CsoportRegistrationForm: létrehozás 15
16 File/New F ő program létrehozása: main.cpp A QtDesigener automatikusan felajánlja a főablakot. 16
17 main.cpp: generált változat A main.cpp nem tartalmazza az alkalmazás adatbáziskapcsolatát. 17
18 main.cpp: módosított változat #include <qapplication.h> #include "csoportregistrationform.h" #include "connection.h" int main( int argc, char ** argv ) { QApplication app( argc, argv ); Az alkalmazás adatbáziskapcsolatát nekünk kell megvalósítani. if (!createconnections()) return 1; } CsoportRegistrationForm csopregform; csopregform.show(); app.connect( &app, SIGNAL( lastwindowclosed() ), &app, SLOT( quit() ) ); return app.exec(); 18
19 ProjectOveview felépítése A QtDesigner Project/Overview ablaka 19
20 A Config-ban szerepelnie kell thread opciónak. A Qt 3-ban külön be kell állítani! 20
21 A felev tábla ráhelyezése az ű rlapra 2 Válassza ki a DataTable eszközt! 3 Kattintson az űrlapra! 1 Válassza ki a CsoportRegistration Form űrlapot! 21
22 Data Table Wizard: Choose the Database and Table Adjuk meg, hogy az adatbázis felev táblájával szeretnénk dolgozni. 22
23 Data Table Wizard: Displayed Fields 23
24 Data Table Wizard: Table Properties 24
25 Data Table Wizard: SQL 25
26 Data Table Wizard: Finish 26
27 FelevDataTable Lay Out in a Grid Ctrl+T Tesztelés a QtDesigner adatbáziskezelőjével. 27
28 CsoportRegistrationForm: Els ő változat futtatása Nincs adatellenőrzés. Új csoport felvitelekor a háttérben meghúzódó felev_id nem kap értéket. Ha még egy rekordot be szeretnénk szúrni, akkor hibaüzenetet kapunk. mysql> select * from felev; felev_id szam kezdet fsz max / / / / / xxxxxxx rows in set (0.00 sec) 28
29 FelevDataTable (QDataTable) primeinsert() beforeupdate() beforeinsert() currentchanged() CsoportRegistrationForm (QDialog) Signálok és slotok slotprimeinsertfelev() slotbeforeupdatefelev() slotcurrentchangedfelev() slotprimeinsertfelev(): sorszám kiosztása slotbeforeupdate()felev: adatellenőrzés slotcurrentchangedfelev(): helyi menü állapota 29
30 slotprimeinsertfelev() 1 2 A felev táblában a slotprimeinsertfelev() slotban kezeljuk a sorszám kiosztását. 30
31 Edit/Slots.../slotPrimeInsertFelev() slotprimeinsertfelev() 1 2 slotprimeinsertfelev(qsqlrecord* buffer) 3 31
32 csoportregistrationform.ui.h: slotprimeinsertfelev() Forrásprogram szerkesztő csoportregistrationform.ui.h A kódot nekünk kell begépelni. 32
33 slotprimeinsertfelev(): kód void CsoportRegistrationForm::slotPrimeInsertFelev( QSqlRecord *buffer ) { // felev_id kitöltése a következ ő sorszámmal QSqlQuery query; query.exec("update sequence Set sequence = sequence + 1 WHERE tablename = 'felev';"); query.exec("select sequence from sequence where tablename = 'felev';"); if (query.next() ) { buffer->setvalue("felev_id", query.value(0)); } } //Kezdetiértékek beállítása buffer->setvalue("szam",1); buffer->setvalue("fsz",4); buffer->setvalue("kezdet","2003/2004-1"); buffer->setvalue("max",20); 33
34 Signal / slot kapcsolat kiépítése
35 Sender: FelevDataTable Signal: primeinsert (QSqlrecord*) 35
36 Receiver: CsoportRegistrationForm Slot: slotpprimeinsertfelev (QSqlrecord*) Sender: FelevDataTable Signal: primeinsert(qsqlrecord*) Receiver: CsoportRegistrationForm Slot: slotprimeinsertfelev(qsqlrecord* buffer) 36
37 A csopreg.pro fájl SOURCES += connection.cpp \ main.cpp HEADERS += connection.h unix { UI_DIR =.ui MOC_DIR =.moc OBJECTS_DIR =.obj } FORMS = csoportregistrationform.ui TEMPLATE =app CONFIG += qt warn_on release thread DBFILE = csopreg.db LANGUAGE = C++ A projektet leíró fájl tartalma 37
38 Fordítás/Szerkesztés qmake -o Makefile csopreg.pro make 38
39 Futtatás:./csopreg Beszúrásnál felajánlja a kezdetiértékeket. A felev_id sorszámot kapott. mysql> select * from felev; felev_id szam kezdet fsz max / / / / / / rows in set (0.00 sec) 39
40 Adatellen ő rzés: slotbeforeupdatefelev() 1 Mielőtt az adatokat visszaírjuk az adatbázisba, ellenőrizzünk. (slotbeforeupdatefelev())
41 csoportregistrationform.ui.h: slotbeforeupdatefelev() 41
42 slotbeforeupdatefelev(): kód - 1 void CsoportRegistrationForm::slotBeforeUpdateFelev( QSqlRecord * buffer ) { // A max mez ő értéke nem mehet a létez ő csoportszám alá QSqlQuery query; int foglalt=0; query.exec( "SELECT count(*) FROM csoport WHERE felev_id=" + buffer->value("felev_id").tostring() + ";" ); if (query.next()) foglalt = query.value(0).toint(); if(buffer->value("max").toint() < foglalt) { buffer->setvalue("max",foglalt); QString q = "A maximális csoportszám\n nem lehet kisebb\n a már bejegyzett csoportok számánál! \n Eddig " + QString::number(foglalt) + " db csoport lett bejegyezve."; QMessageBox::information( this, "Félév Regisztráció", q ); } }... 42
43 slotbeforeupdatefelev(): kód - 2 void CsoportRegistrationForm::slotBeforeUpdateFelev( QSqlRecord * buffer ){... //A szám mez ő értéke 1-4 közé es ő szám if(buffer->value("szam").toint() < 1 buffer->value("szam").toint() > 4) { QMessageBox::information( this, "Félév Regisztráció", "A szám oszlopban csak 1,2,3,4 szerepelhet!"); buffer->setvalue("szam",4); } //A feladatok száma maximum 4 if(buffer->value("fsz").toint() > 4) { QMessageBox::information( this, "Félév Regisztráció", "A feladatok száma maximum 4 lehet!"); buffer->setvalue("fsz",4); } } 43
44 Signal / Slot kiépítése Sender: FelevDataTable Signal: beforeupdate(qsqlrecord*) Receiver: CsoportRegistrationForm Slot: slotbeforeupdatefelev(qsqlrecord* buffer) Sender: FelevDataTable Signal: beforeinsert(qsqlrecord*) Receiver: CsoportRegistrationForm Slot: slotbeforeupdatefelev(qsqlrecord* buffer) 44
45 Fordítás/Futtatás qmake./csopreg 45
46 Környezetfügg ő helyi menü A helyi menüben csak azokat a menüpontokat engedélyezzük, amelyeknek értelme van. 46
47 slotcurrentchangedfelev(): létrehozás Edit/Slots... slotcurrentchangedfelev(qsqlrecord *buffer) A slotcurrentchangedfelev() slotban állítjuk be a helyi menü aktuális állapotát. 47
48 slotcurrentchangedfelev() Function: slotcurrentchangedfelev(qsqlrecord *buffer) Return type: void Specifier: virtual Access: public Type: slot QtDesigner QtDesigner csoportregistrationform.ui <slots>... <slot>slotcurrentchangedfelev( QsQlRecord * buffer )</slot> </slots> csoportregistrationform.ui.h void slotcurrentchangedfelev(qsqlrecord* buffer) { } moc csoportregistrationform.h public slots: virtual void slotcurrentchangedfelev(qsqlrecord*) 48
49 slotcurrentchangedfelev() - Object Explorer Kód beírása 49
50 slotcurrentchangedfelev(): kód void CsoportRegistrationForm::slotCurrentChangedFelev( QSqlRecord *buffer ) { if (!buffer) return; int count=0; QSqlQuery query("select count(*) FROM felev;") ; if (query.next()) count = query.value(0).toint(); if (count==0){ FelevDataTable->sqlCursor()->setMode( QSqlCursor::Insert); return; } Ha a felev tabla üres, akkor csak insert. } int foglalt=0; query.exec( "SELECT count(*) FROM csoport WHERE felev_id=" + buffer->value("felev_id").tostring() + ";" ); if (query.next()) foglalt = query.value(0).toint(); if ( foglalt == 0 ) { FelevDataTable->sqlCursor()-> setmode( QSqlCursor::Insert QSqlCursor::Delete QSqlCursor::Update ); }else { FelevDataTable->sqlCursor()->setMode( QSqlCursor::Insert QSqlCursor::Update ); } Van már bejegyzett csoport az adott félévre? 50
51 slotcurrentchangedfelev(): signal/slot kapcsolat Sender: FelevDataTable Signal: currentchanged(qsqlrecord*) Receiver: CsoportRegistrationForm Slot: slotcurrentchangedfelev(qsqlrecord* buffer) 51
52 Fordítás/Futtattás Ebben a félévben már van bejegyzett csoport. 52
53 2. lépés 53
54 A csoport tábla elhelyezése FelevDataTable CsoportDataTable Főablak + félév tábla létrehozása Csoport tábla Gombok hozzáadása, dialógus elkészítése A feladat második lépéseként helyezzük el a csoport táblát az űrlapon, majd kapcsoljuk össze a két táblát. 54
55 FelevDataTable (QDataTable) primeinsert() beforeupdate() beforeinsert() currentchanged() CsoportDataTable (QDataTable) primeinsert() CsoportRegistrationForm (QDialog) slotprimeinsertfelev() slotbeforeupdatefelev() slotcurrentchangedfelev() newcurrentfelev() slotprimeinsertcsoport() Signálok és slotok init() newcurrentfelv(): csoport tábla fissítése slotprimeinsertcsoport(): csoport_id beállítása 55
56 A CsoportDataTable átméretezése Töröljük a korábbi elrendezést (Break Layout), és méretezzük át a félév táblát! 56
57 A FelevDataTable elhelyezése A Data Table eszköz kiválasztása után kattintson az űrlapra, majd Válaszoljon a Data Table Wizard kérdéseire. 57
58 Data Table Wizard: Choose Database and Table A projekt adatbáziskapcsolata már létezik (csopreg.pro), ezért itt már csak a jelszót kérdezi. 58
59 Data Table Wizard: Displayed Fields 59
60 Data Table Wizard: Table Properties 60
61 Data Table Wizard: SQL 61
62 Data Table Wizard: Finish 62
63 Táblák elrendezése Jelöljök ki mindkét táblát! A második tábla neve: CsoportDataTable 63
64 newcurrentfelev(): slot + connections Ha új sort új rekordot választunk a felev táblában, akkor a csoport táblát frissíteni kell. Edet/Slots.../New Function Function: newcurrentfelev(qsqlrecord *buffer) Return type: void Specifier: virtual Access: public Type: slot Edit/Connections/New Sender: FelevDataTable Signal: currentchanged(qsqlrecord*) Receiver: CsoportRegistrationForm Slot: newcurrentfelev(qsqlrecord* buffer) 64
65 newcurrentfelev(): kód void CsoportRegistrationForm::newCurrentFelev( QSqlRecord * buffer ) { CsoportDataTable->setFilter("felev_id=" +buffer->value("felev_id").tostring()) ; CsoportDataTable->refresh(); } 65
66 slotprimeinsertcsoport(): slot + connections Ha új sort új rekordot szúrunk be a csoport táblában, akkor a csoport_id és a felev_id értékeket nekünk kell kitölteni a segéd pufferben. Ezt valósítjuk meg ebben a slotban. Edet/Slots.../New Function Function: slotprimeinsertcsoport(qsqlrecord *buffer) Return type: void Specifier: virtual Access: public Type: slot Edit/Connections/New Sender: CsoportDataTable Signal: primeinsert(qsqlrecord*) Receiver: CsoportRegistrationForm Slot: slotprimeinsertcsoport(qsqlrecord* buffer) 66
67 slotprimeinsercsoport(): kód void CsoportRegistrationForm::slotPrimeInsetCsoport( QSqlRecord * buffer ){ //csoport_id lekérdezése QSqlQuery query; query.exec("update sequence Set sequence = sequence + 1 where tablename = 'csoport';"); query.exec("select sequence from sequence where tablename = 'csoport';"); if (query.next() ) { buffer->setvalue("csoport_id", query.value(0)); } //felev_id kitöltése buffer->setvalue("felev_id", FelevDataTable->currentRecord()->value("felev_id")); //Kezdetiértékek beállítása buffer->setvalue("max",30); } 67
68 Fordítás/Futtatás? Indulásnál a szűr ő még nem működik. A konstruktorban kellene szűrni. Az ui.h -s technikában az init() függvényben adjuk meg a konstruktor -beli teendőket. Itt még nem működik a szűrés. Ez lenne a jó tábla. 68
69 CsoportRegistrationForm inicializálása - init(): létrehozás 69
70 CsoportRegistrationForm inicializálása - init(): kód void CsoportRegistrationForm::init() { if (FelevDataTable && CsoportDataTable && FelevDataTable->numRows() >0) { FelevDataTable->selectRow(0); slotcurrentchangedfelev(felevdatatable->currentrecord()); CsoportDataTable->setFilter("felev_id=" + FelevDataTable->currentRecord()->value("felev_id").toString()); CsoportDataTable->refresh(); if (CsoportDataTable->numRows()>0) CsoportDataTable->selectRow(0); } } 70
71 3. rész 71
72 A csoportokat egy önálló dialógusablakban szeretnénk szerkeszteni. F ablak + félév tábla létrehozása ő Csoport tábla Gombok hozzáadása, dialógus elkészítése 72
73 A CsoportRegistrationForm ű rlap módosítása FelevDataTable CsoportDataTable EditPushButton QuitPushButton editclicked() slot 73
74 FelevDataTable (QDataTable) primeinsert() beforeupdate() beforeinsert() currentchanged() CsoportDataTable (QDataTable) primeinsert() cursorchanged() CsoportRegistrationForm (QDialog) slotprimeinsertfelev() slotbeforeupdatefelev() slotcurrentchangedfelev() newcurrentfelev() slotprimeinsertcsoport() slotcursorchangedcsoport() editclicked() accept() Signálok és slotok EditCsoportForm (QDialog) setfelevid() felevid() EditPushButton (QPushButton) clicked() QuitPushButton (QPushButton) clicked() init() newcurrentfelev(): és slotcursorchangedcsoport(): Szerkesztés gomb frissítése int _felev_id; editclicked() dialog->setsqlcursor() dialog->setfilter() dialog->setsort() dialog->setfelevid() 74
75 A Kilépés ilépés gomb eseménykezelése: signál/slot kapcsolat Sender: QuitPushButton Signal: clicked() Receiver: CsoportRegistrationForm Slot: accept() 75
76 EditCsoportForm dialógusablak 76
77 EditCsoportForm dialógus: létrehozása File/New/dialog Caption: Csoport tábla szerkesztése name: EditCsoportForm Save As: editcsoportform.ui 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 1 CsoportDataBrowser Az adatreprezentáló cursort mi adjuk meg!! 2 85
86 Az EditCsoportForm felépítése EditCsoportForm LabelKezdet LabelSzint ComboBoxGyakvez QLineEditNev QSpinBoxMax QSpinBoxGyakvez_id PushButtonLast CsoportDataBrowser 86
87 Új adattag beillesztése Az EditCsoportForm-ot kell kiválasztani! 1 int _felev_id;
88 A felev_id adattagot kezel ő függvények: létrehozás Function: felevid() Return type: int Specifier: non virtual Access: public Type: function Function: setffelevid(int felev_id ) Return type: void Specifier: non virtual Access: public Type: function 88
89 A _felev_id adattagot kezel ő függvények: kód int EditCsoportForm::felevId() { return _felev_id; } void EditCsoportForm::setFelevId( int felev_id ){ _felev_id=felev_id; QSqlQuery query("select kezdet,szam FROM felev WHERE felev_id=" + QString::number(_felev_id) + ";"); if (query.next()) { LabelKezdet->setText(query.value(0).toString()); LabelSzint->setText("EAF" + query.value(1).tostring()); } } 89
90 A Szerkesztés zerkesztés gomb slotja - editclicked() slot Edit/Slots Function:editClicked() Return type: void Specifier: virtual Access: public Type: slot Edit/Connections sender: EditPushButton signal: clicked() receiver: CsoportRegistrationForm slot: editclicked() 90
91 EditClicked() slot: kód void CsoportRegistrationForm::editClicked(){ EditCsoportForm *dialog = new EditCsoportForm( this, "Edit Csoport Form", TRUE ); QSqlCursor cursor( "csoport" ); dialog->csoportdatabrowser->setsqlcursor( &cursor ); dialog->csoportdatabrowser->setfilter( CsoportDataTable->filter() ); dialog->csoportdatabrowser->setsort(qsqlindex::fromstringlist( CsoportDataTable->sort(), &cursor ) ); dialog->csoportdatabrowser->refresh(); int i = CsoportDataTable->currentRow(); if ( i == -1 ) i = 0; // Always use the first row CsoportDataTable->selectRow(i); dialog->setfelevid(csoportdatatable->currentrecord()->value("felev_id").toint()); dialog->csoportdatabrowser->seek( i ); dialog->exec(); delete dialog; CsoportDataTable->refresh(); if (CsoportDataTable->numRows()==0) EditPushButton->setEnabled(FALSE); else EditPushButton->setEnabled(TRUE); } Az implementációban hivatkozunk az EditCsoportForm és a CsoportDataBrowser osztályokra, ezért ezek header fájljait be kell illeszteni a projektbe. 91
92 Header fájlok beillesztése 1 A ProjectOverview ablakban válassza ki a CsoportRegistrationForm-ot! Kattintson az egér jobb fülére, majd válassza ki a New menüpontot. 2 92
93 Fordítás/Futtatás 93
94 A Szerkesztés gomb engedélyezése/tíltása Edit/Slots Function: slotcursorchangedcsoport() Return type: void Specifier: virtual Access: public Type: slot Edit/Connections sender: CsoportDataTable signal: cursorchanged(qsql::op) receiver: CsoportRegistrationForm slot: slotcursorchangedcsoport() 94
95 A newcurrentfelev() slot módosítása void CsoportRegistrationForm::newCurrentFelev( QSqlRecord * buffer ){ CsoportDataTable->setFilter("felev_id=" +buffer->value("felev_id").tostring()) ; CsoportDataTable->refresh(); } if (CsoportDataTable->numRows()>0) CsoportDataTable->selectRow(0); if (CsoportDataTable->numRows()==0) EditPushButton->setEnabled(FALSE); else EditPushButton->setEnabled(TRUE); 95
96 Az init() módosítása void CsoportRegistrationForm::init() { if (FelevDataTable && CsoportDataTable && FelevDataTable->numRows() >0) { FelevDataTable->selectRow(0); slotcurrentchangedfelev(felevdatatable->currentrecord()); CsoportDataTable->setFilter("felev_id=" + FelevDataTable->currentRecord()->value("felev_id").toString()); CsoportDataTable->refresh(); if (CsoportDataTable->numRows()>0) CsoportDataTable->selectRow(0); if (CsoportDataTable->numRows()==0) EditPushButton->setEnabled(FALSE); else EditPushButton->setEnabled(TRUE); } } 96
97 Az EditCsoportForm osztály további függvényei és slotjai Önálló feldolgozásra 97
98 Signálok és slotok EditCsoportForm (QDialog) slotfelevid() slotprimeinsert() slotprimeupdate() slotgyakvezchanged() CsoportDataBrowser (QDataBrowser) primeinsert() primeupdate() init() LabelKezdet (QLabel) QLineEditNev (QLineEdit) QSpinBoxMax (QSpinBox) init() QSpinBoxGyakvez_id (QSpinBox) activated() felevid() int _felev_id; LabelSzint (QLabel) PushButtonFirst (QPushButtonl) setfelevid() LabelSzint->setText() LabelKezdet->setText() ComboBoxGyakvez (QComboBox) PushButtonClose (QPushButton) 98
99 EditCsoportForm:: init() void EditCsoportForm::init() { QSqlQuery query ("SELECT nev FROM gyakvez ORDER BY nev;"); while (query.next()) ComboBoxGyakvez->insertItem(query.value(0).toString()); } A gyakorlatvezet nevét ő tartalmazó ComboBox kitöltése 99
100 EditCsoportForm:: slotprimeinsert() Edit/Slots/New Function/implementáció begépelése void EditCsoportForm::slotPrimeInsert( QSqlRecord * buffer ){ QSqlQuery query; query.exec("update sequence Set sequence = sequence + 1 where tablename = 'csoport';"); query.exec("select sequence from sequence where tablename = 'csoport';"); if (query.next() ) { buffer->setvalue("csoport_id", query.value(0)); } buffer->setvalue("felev_id", QString::number(_felev_id)); } Edit/Connections sender: CsoportDataBrowser signal: primeinsert(qsqlrecord*) receiver: EditCsoportForm slot: slotprimeinsert(qsqlrecord*) 100
101 EditCsoportForm:: slotprimeupdate() - 1 Edit/Slots/New Function/implementáció begépelése void EditCsoportForm::slotPrimeUpdate( QSqlRecord * buffer ){ if (!buffer) return; //Ki a gyakorlatvezetö QString q="select nev FROM gyakvez WHERE gyakvez_id='" + buffer->value("gyakvez_id").tostring() + "';"; QSqlQuery query (q); QString gyakvez = ""; if (query.next()) gyakvez=query.value(0).tostring(); //Állítsuk be a gyakvez ComboBox értékét for (int i=0; i < ComboBoxGyakvez->count(); i++) { if (ComboBoxGyakvez->text(i)==gyakvez) { ComboBoxGyakvez->setCurrentItem(i); break; } }... } 101
102 EditCsoportForm:: slotprimeupdate() - 2 Edit/Slots/New Function/implementáció begépelése void EditCsoportForm::slotPrimeUpdate( QSqlRecord * buffer ){... //Állítsuk be a max Spin box minimális értékét int foglalt=0; query.exec( "SELECT count(*) FROM tag WHERE csoport_id=" + buffer->value("csoport_id").tostring() + ";" ); if (query.next()) foglalt = query.value(0).toint(); QSpinBoxMax->setMinValue(foglalt); } Edit/Connections sender: CsoportDataBrowser signal: primeupdate(qsqlrecord*) receiver: EditCsoportForm slot: slotprimeupdate(qsqlrecord*) 102
103 EditCsoportForm: Header fájlok beillesztése A slotprimeupdate() slot deklarációs és definíciós részében is hivatkozunk a QSqlRecord osztályra. 1 editcsoportform.h class QSqlRecord;... public slots: void slotprimeupdate(qsqlrecord* buffer)... editcsoportform.cpp 2 3 #include <qsqlrecord.h>.. void slotprimeupdate(qsqlrecord* buffer) { } 103
104 EditCsoportForm:: slotgyakvezchanged() Edit/Slots/New Function/implementáció begépelése void EditCsoportForm::slotGyakvezChanged( const QString & g ){ //Mi a gyakorlatvezetö id-je? QString q="select gyakvez_id FROM gyakvez WHERE nev='" + g + "';"; QSqlQuery query (q); if (query.next()) QSpinBoxGyakvez_id->setValue(query.value(0).toInt()); CsoportDataBrowser->update(); } Edit/Connections sender: ComboBoxGyakvez signal: activated(const QString &) receiver: EditCsoportForm slot: slotgyakvezchanged(const QString &) Ha új gyakorlatvezetőt választottunk, akkor a névhez tartozó gyakvez_id-t kell megjeleníteni a vezérlőn. 104
105 Vége 105
106 FelevDataTable (QDataTable) primeinsert() beforeupdate() currentchanged() beforeinsert() CsoportDataTable (QDataTable) primeinsert() cursorchanged() CsoportRegistrationForm (QDialog) slotprimeinsertfelev() slotbeforeupdatefelev() slotcurrentchangedfelev() newcurrentfelev() slotprimeinsertcsoport() slotcursorchangedcsoport() editclicked() accept() A projekt osztálydiagramja -1 EditCsoportForm (QDialog) slotfelevid() slotprimeinsert() slotprimeupdate() slotgyakvezchanged() init() EditPushButton (QPushButton) clicked() init() felevid() int _felev_id; QuitPushButton (QPushButton) clicked() 106
107 CsoportRegistrationForm (QDialog) CsoportDataBrowser (QDataBrowser) QLineEditNev (QLineEdit) primeinsert() primeupdate() EditCsoportForm (QDialog) init() QSpinBoxMax (QSpinBox) slotfelevid() slotprimeinsert() slotprimeupdate() slotgyakvezchanged() LabelKezdet (QLabel) QSpinBoxGyakvez_id (QSpinBox) init() LabelSzint (QLabel) PushButtonFirst (QPushButtonl) felevid() int _felev_id; A projekt osztálydiagramja -2 ComboBoxGyakvez (QComboBox) PushButtonClose (QPushButton) 107
108 FelevDataTable (QDataTable) primeinsert() beforeupdate() beforeinsert() currentchanged() CsoportDataTable (QDataTable) primeinsert() cursorchanged() CsoportRegistrationForm (QDialog) slotprimeinsertfelev() slotbeforeupdatefelev() slotcurrentchangedfelev() newcurrentfelev() slotprimeinsertcsoport() slotcursorchangedcsoport() editclicked() accept() Signálok és slotok - 1 EditCsoportForm (QDialog) setfelevid() slotprimeinsert() slotprimeupdate() slotgyakvezchanged() init() EditPushButton (QPushButton) clicked() init() felevid() int _felev_id; QuitPushButton (QPushButton) clicked() editclicked() dialog->setsqlcursor() dialog->setfilter() dialog->setsort() dialog->setfelevid() 108
109 Signálok és slotok - 2 CsoportDataBrowser (QDataBrowser) QLineEditNev (QLineEdit) EditCsoportForm (QDialog) setfelevid() slotprimeinsert() slotprimeupdate() slotgyakvezchanged() primeinsert() primeupdate() init() LabelKezdet (QLabel) QSpinBoxMax (QSpinBox) QSpinBoxGyakvez_id (QSpinBox) init() activated() felevid() int _felev_id; LabelSzint (QLabel) PushButtonFirst (QPushButtonl) setfelevid() LabelSzint->setText() LabelKezdet->setText() ComboBoxGyakvez (QComboBox) PushButtonClose (QPushButton) 109
Elemi alkalmazások fejlesztése IV.
Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezelő alkalmazás készítése Kdevelop környezetben I. Készítette: Szabóné Nacsa Rozália 1 MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó
RészletesebbenMySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa
Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezel ő alkalmazás készítése Kdevelop környezetben I. MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó [root@localhost nacsa]# /usr/bin/safe_mysqld
RészletesebbenElemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka
Elemi alkalmazások fejlesztése III Ajánlott ir odalom Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával Qt dokumentáció online: www.trolltech.com lokális változat: Kdevelop help vagy /usr/share/doc...
RészletesebbenElemi alkalmazások fejlesztése III
Elemi alkalmazások fejlesztése III Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával készítette: Szabóné Nacsa Rozália 1 Ajánlott irodalom Qt dokumentáció online: www.trolltech.com lokális
RészletesebbenQLabel *label = new Qlabel("Hello Qt!",0);
#include #include int main(int argc,char **argv) QApplication app(argc,argv); QLabel *label = new Qlabel("Hello Qt!",0); app.setmainwidget(label); label->show(); return app.exec();
RészletesebbenEgységes és objektumközpontú adatbázis-kezelés (2. rész)
Egységes és objektumközpontú adatbázis-kezelés (2. rész) A folytatásában a bemutatjuk, hogyan kezelhetünk Qt rendszer alatt SQL sormutatót, és készíthetünk grafikus felületet programoknak a Qt Designer
RészletesebbenElemi alkalmazások fejlesztése IV. Adatbáziskezelő alkalmazás készítése C++/Qt ben I.
Tartalomjegyzék Adatbáziskezelő alkalmazás készítése C++/Qt ben I...3 A MySQL adatbáziskezelő használatba vétele...3 Az alkalmazás adatbázisa...4 A Qt/Sql modul...5 Az adatbázis és az alkalmazás összekapcsolása...5
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Grafikus felületű alkamazások készítése Bevezetés I. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2009 1 www.trolltech.com
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 A Qt assistant nyitó ablaka www.trolltech.com 2 Alkalmazás
RészletesebbenElemi alkalmazások fejlesztése III
Elemi alkalmazások fejlesztése III Egyablakos alkalmazás készítése I. Qt/X11 felhasználásával Kdevelop környezetben készítette: Steingart Ferenc Szabóné Nacsa Rozália Ajánlott irodalom Qt dokumentáció
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Egy ablakos alkalmazás készítése II. C++ / Qt / KDevelop felhasználásával készítette: Szabóné Nacsa Rozália lektorálta: Párniczky Krisztina 1 Fájlkezelés Olvasás 2 A
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. MDI alkalmazás II. (Számla) Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 Számla felépítése fejléc tábla 2 Az alkalmazás
RészletesebbenAlkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I.
Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 Objektumok közötti kommunikáció (quit)...3 Fordítás/futtatás...4 Grafikus felület létrehozása, vezérlők szinkronizálása
RészletesebbenAdatbázis-kezelés ODBC driverrel
ADATBÁZIS-KEZELÉS ODBC DRIVERREL... 1 ODBC: OPEN DATABASE CONNECTIVITY (NYÍLT ADATBÁZIS KAPCSOLÁS)... 1 AZ ODBC FELÉPÍTÉSE... 2 ADATBÁZIS REGISZTRÁCIÓ... 2 PROJEKT LÉTREHOZÁSA... 3 A GENERÁLT PROJEKT FELÉPÍTÉSE...
RészletesebbenElemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása
Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/eaf4/ Qt 4 2007
RészletesebbenAdatbázis-kezelés ActiveX vezérl kkel 2.rész
Adatbázis-kezelés ActiveX vezérl kkel 2.rész Készítette: Szabóné Nacsa Rozália 2004. november Feladat Figyelmeztetés, Figyelmeztetés, ha ha betelt betelt a a csoport. csoport. Csoport Csoport kiválasztása
RészletesebbenBudapest, 2007. március. ELTE Informatikai Kar
Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 A projekt elkészítésének lépései...3 Objektumok közötti kommunikáció (quit)...3 A projekt elkészítésének
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Memóriajáték 1. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 memorygame Játék közben 2 memorygame Kártyák kiválasztása
RészletesebbenAdabáziselérés ODBC-n keresztül utasításokkal C#-ban
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\
RészletesebbenAdatbázis-kezelés ODBC-vel
Adatbázis-kezelés ODBC-vel Készítette: Szabóné Nacsa Rozália 2004. november Adatbázis-kezelés API hívásokkal Alkalmazás Adatbázis 1 API 1 API 1 hívások Adatbázis 2 API 2 Alkalmazás API 2 hívások Adatbázis-kezelés
RészletesebbenAccess adatbázis elérése OLE DB-n keresztül
Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes
RészletesebbenElemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1
ADATBÁZIS-KEZELÉS ACTIVEX VEZÉRLİK ALKALMAZÁSÁVAL I.... 1 ACTIVEX... 1 ACTIVEX CONTROL... 1 SAJÁT ACTIVEX VEZÉRLİ LÉTREHOZÁSA... 1 circctrl.cpp... 2 Háttérszín tulajdonság hozzárendelése a vezérlıhöz...
RészletesebbenFeladat. Tervezés és implementálás
Tartalomjegyzék FELADAT...2 Elvárások...2 TERVEZÉS ÉS IMPLEMENTÁLÁS...2 Megjelenési terv...2 Grafikus felület készítése...3 Modulszerkezet...3 Osztály diagram...3 MillMain form...4 Vezérlő k elrendezése...4
RészletesebbenTervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks)
Tartalomjegyzék Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál...1 Saját vezérlő használata tervezőben (worldclocks)...1 DigitalClock osztály (módosítás)...2 MyForm osztály...3
RészletesebbenAdatbázis-kezelés API hívásokkal. Adatbázis-kezelés ODBC-vel. Adatbázis-kezelés SQL parancsokkal. Adatbázis-kezelés ODBC-vel.
Adatbázis-kezelés API hívásokkal hívások Adatbázis-kezelés -vel Készítette: Szabóné Nacsa Rozália 2004. november API 2 API 2 hívások Adatbázis-kezelés parancsokkal Adatbázis-kezelés -vel eljárások 1 parancsok
RészletesebbenHozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):
Oracle adatbázis elérése A gyakorlat célja az, hogy a hallgató tapasztalatot szerezzen egy szerver oldali adatbázis kezelő rendszer elérésében, gyakorolja a vizuális eszközök és a kapcsolat nélküli (Disconnected
RészletesebbenEseményvezérelt alkalmazások
Szabóné Nacsa Rozália nacsa@inf.elte.hu Eseményvezérelt alkalmazások A Windows alkalmazások eseményvezérelt alkalmazások Esemény: egér kattintás billenty leütés stb. Üzenetkezelés Operációs rendszer kódja
RészletesebbenKönyvtári nyilvántartás
Könyvtári nyilvántartás Feladat: Készítette: Az alkalmazás lehetővé teszi egy könyvtári könyv kikölcsönzésének és visszahozásának, az könyvtártagok tagdíj-befizetéseinek és az olvasó terembe történő be-
RészletesebbenElemi alkalmazások fejlesztése I.
Steingart Ferenc el adása alapján készítette: Szabóné Nacsa Rozália Integrált fejleszt környezet Linux MS Win* www.kdevelop.org www.bloodshed.net Bevezetés 1 A kdevelop f ablaka Editor és böngész Projektszerkezet
RészletesebbenAdatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17
Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 EAF3 Qt4 Bevezetés (mod01) 1 A Qt assistant nyitó ablaka www.trolltech.com
RészletesebbenKészítette: Szabóné Nacsa Rozália
Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu 1 Structured Query Language (Struktúrált lekérdező nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány 2 DIAKOK dkód vnév knév 1001 Kiss János
RészletesebbenElemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérl ı kkel - 2
Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérl ı kkel - 2 ADATBÁZIS-KEZELÉS ACTIVEX VEZÉRLİ K ALKALMAZÁSÁVAL II... 2 PROJEKT LÉTREHOZÁSA... 3 ACTIVEX VEZÉRLİ K BEILLESZTÉSE... 3 A
RészletesebbenElemi adatbázis kezelés
Elemi adatbázis kezelés Adatbázisok használata Qt alatt A Qt-ben a QtSql module támogatja az SQL elérésű adatbázisok platform- és adatbázis független használatát. Az adatbázis kapcsolat kiépítése során
RészletesebbenAlkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3
Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Modell-nézet (model-view) tervezési minta (bevezetés)...3 Számlatételek kezelése, karbantartása ( táblázat kezelés )...4 A táblázatkezelő
RészletesebbenGrafikus Qt programok írása segédeszközök nélkül
Grafikus Qt programok írása segédeszközök nélkül Grafikus felületű Qt programokat ahogy láttuk, készíthetünk egy egyszerű szövegszerkesztővel is, bár a Qt jó támogatást ad a grafikus felület grafikus tervezésére
RészletesebbenJohanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba
Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen
RészletesebbenSDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME
SDI ALKALMAZÁS I. Feladat: Készítsünk egy olyan alkalmazást, amely az év végi adózás céljából rögzíti egyetlen évközi bevételnek az adatait: bruttó jövedelem adóel ı leg nettó bevétel jövedelem forrása
RészletesebbenTáblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.
Táblakezelés: Open SQL Internal table Tarcsi Ádám: Az SAP programozása 1. OPEN SQL Tarcsi Ádám, ELTE SAP Excellence Center: SAP programozás oktatóanyag 2 Open SQL Az Open SQL kulcsszavai: SELECT INSERT
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 7. előadás. Adatbázis-kezelés elemi eszközökkel. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 7. előadás Adatbázis-kezelés elemi eszközökkel Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014. évi
RészletesebbenAdatok speciális megjelenítése
Adatok speciális megjelenítése Speciális adatmegjelenítés Az adatok csoportos megjelenítéshez a nézet számos osztályt (QListView, QTableView, QTreeView) biztosít, amelyekből származtatással továbbiakat
RészletesebbenC#---Access adatbáziskezelési gyakorlat
C#---Access adatbáziskezelési gyakorlat 1. Feladat: adatbázis kezelő alkalmazás készítése C# környezetben, Access adatbázist használva. 2. Minta adatbázis létrehozása ACCESS-ben 3. A Projekt létrehozása
RészletesebbenAdatbázis-kezelés ActiveX vezérl kkel
Adatbázis-kezelés ActiveX vezérl kkel Készítette: Szabóné Nacsa Rozália 2004. november Saját vezérl Feladat: Készítsünk kört kört rajzoló rajzológrafikus vezérl vezérl t. t. Figyelem!! Most Most az az
RészletesebbenAdatbázis kezelés Delphiben. SQL lekérdezések
Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja
Részletesebben3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció 3a. Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Salvi Péter BME, Villamosmérnöki
RészletesebbenKilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos
PASzSz Kilencedik témakör: Lazarus-Firebird Készítette: Dr. Kotsis Domokos Az SQLdb fülön IBConnection Kapcsolat A Data Access fülön Az SQLdb fülön... Select 1. Az SQLQuery lezárása. (Active := false,
RészletesebbenAdatbázisok webalkalmazásokban
Sapientia - EMTE, Pannon Forrás,,Egységes erdélyi felnőttképzés a Kárpát-medencei hálózatban 2010 A JDBC API A Data Access Object tervezési minta Adatforrás - DataSource JDBC architektúra A JDBC API java.sql
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés modell/nézet architektúrában
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 8. előadás Adatbázis-kezelés modell/nézet architektúrában 2013.04.17. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 11. előadás. Adatkezelés speciális eszközökkel. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 11. előadás Adatkezelés speciális eszközökkel Giachetta Roberto http://people.inf.elte.hu/groberto Az adatkezelés
RészletesebbenSQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
RészletesebbenThermo1 Graph. Felhasználói segédlet
Thermo1 Graph Felhasználói segédlet A Thermo Graph program a GIPEN Thermo eszközök Windows operációs rendszeren működő grafikus monitorozó programja. A program a telepítést követően azonnal használható.
RészletesebbenAz SQL*Plus használata
Az SQL*Plus használata Célkitűzés Bejelentkezés az SQL*Plus-ba SQL utasítások szerkesztése Az eredmény formázása SQL*Plus utasításokkal Szkriptfájlok használata Az SQL és az SQL*Plus kapcsolata SQL*Plus
RészletesebbenAdatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs
RészletesebbenEntity Framework + LINQ oktatási segédlet
Entity Framework + LINQ oktatási segédlet Török János Zsolt 2.0. változat Célok: - Ismerkedés az Entity Framework el - Adatbázis lekérdezések létrehozása LINQ segítségével Feladat: Megrendeléseket kezelő
RészletesebbenElemi alkalmazások fejlesztése IV.
Structured Query Language (Struktúrált lekérdez ı nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány né Nacsa Rozália nacsa@inf.elte.hu Fejlesztı : MySQLAB weboldal: www.mysql.com MySQL installálása.
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés elemi eszközökkel. A MySQL adatbázis-kezelő
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 8. előadás Adatbázis-kezelés elemi eszközökkel 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
RészletesebbenSzerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:
Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...
RészletesebbenA jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra:
A Rajzolás lap A rajzolás lap elemi rajzolási lehetőségek bemutatására szolgál. A rajzolás a jobboldali pnlright widget egyik lapjára rakott widgetre történik. A pnlright egy több lapot tartalmazó widget
RészletesebbenElemi alkalmazások fejlesztése III
Elemi alkalmazások fejlesztése III Qt SDI alkalmazás készítése I Kdevelop környezetben Készítette: Szabóné Nacsa Rozália Steingart Ferenc 1 Feladat Készítsünk egy számlakezel ő ablakos alkalmazást! Számlafejléc
RészletesebbenAdatbázis Rendszerek II. 2. Gyakorló környezet
Adatbázis Rendszerek II. 2. Gyakorló környezet 37/1 B IT v: 2017.02.11 MAN Gyakorló környezet Géptermek 37/2 Jelszó váltás 1 2 3 4 37/3 Gyakorló környezet II. apex.oracle.com/en/ 37/4 A regisztrációs folyamat
Részletesebben3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
RészletesebbenProgramozás II gyakorlat. 4. Öröklődés
Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési
RészletesebbenADATBÁZISKEZELÉS KÖZVETLEN ELÉRÉSSEL II...2
ADATBÁZISKEZELÉS KÖZVETLEN ELÉRÉSSEL II...2 2. FELADAT: RENDEZETT LISTA...2 KÉSZITSÜK EL A FILLSORTEDDATA(INT SCOLUMN) SAJÁT METÓDUST!...2 void CBankView::FillSortedData(int scolumn)... 3 KÉSZITSÜK EL
RészletesebbenEseménykezelés. Aszinkron kommunikáció
Eseménykezelés Aszinkron kommunikáció Feladat Készítsünk egy stoppert, amely másodpercenként jelzi a múló időt. Ez a folyamat egy adott jelzés hatására induljon el; ugyanezen jelzés ismétléseinek hatására
RészletesebbenSQLTools in 5 steps ver. 0.1
SQLTools in 5 steps ver. 0.1 Drzewiecki Tomasz - Magyar fordítás és átdolgozás: Gáti Tamás 2006. július 30. Tartalomjegyzék 1 1. Kapcsolódás Kezdetnek indítsd el a programot. Megjelenik az adatbázis kapcsolódási
RészletesebbenProgramozási technológia
Programozási technológia Swing GUI készítése NetBeans IDE segítségével Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Bevezető Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 10. előadás. Adatbázis-kezelés modell/nézet architektúrában. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 10. előadás Adatbázis-kezelés modell/nézet architektúrában Giachetta Roberto http://people.inf.elte.hu/groberto
RészletesebbenEgészítsük ki a Drupal-t. Drupal modul fejlesztés
Egészítsük ki a Drupal-t Drupal modul fejlesztés Drupal 6.0 2008. február 13. Miért írjunk Drupal modult? Nincs az igényeinknek megfelelő modul Valamilyen közösségi igény kielégítése Valami nem úgy működik
RészletesebbenElemi alkalmazások fejlesztése III
Elemi alkalmazások fejlesztése III C++/ Qt alapú SDI alkalmazás készítése I. Készítette: Szabóné Nacsa Rozália Steingart Ferenc 1 Feladat Készítsünk egy számlakezel ő ablakos alkalmazást! Számlafejléc
RészletesebbenC#, OOP. Osztályok tervezése C#-ban
C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat
RészletesebbenWEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK
WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI
RészletesebbenAlkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 1/3
Tartalomjegyzék Feladat...2 A számla elemei...2 A dokumentumot tároló fájl felépítése...3 A számlakészítő program osztálydiagramja...4 Field osztály...4 field.h...4 field.cpp...5 Fields osztály...6 fields.h...6
RészletesebbenExcel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása
DBMS spektrum Excel ODBC-ADO API Tevékenységpontok: - DBMS telepítés - ODBC driver telepítése - DSN létrehozatala -Excel-ben ADO bevonása - ADOConnection objektum létrehozatala - Open: kapcsolat felvétel
RészletesebbenWebszolgáltatás és XML alapú adatbázis. 1. Az adatbázis megtervezése
Webszolgáltatás és XML alapú adatbázis A segédlet célja az, hogy a teljesség igénye nélkül egy egyszerű példán keresztül bemutassa, hogy hogyan készíthetünk egy olyan kétrészes (kétrétegű) alkalmazást,
RészletesebbenMechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
RészletesebbenSwing GUI készítése NetBeans IDE segítségével
Programozási Swing e NetBeans IDE segítségével Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 2 Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi feladatunk volt az
RészletesebbenLBRA6i integrált rendszer
LBRA6i integrált rendszer LIBRA 6i logolás és a log megtekintése Készítette: Libra Szoftver Zrt. Létrehozás dátuma: 2005.12.15. Utolsó módosítás: 2014.10.30. Referencia szám: LIBRA6i_UZEM_V_1.5 Verzió:
RészletesebbenWCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens
WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens Hozzunk létre egy ASP.NET Empty Web Site projektet! A projekt neve legyen WCFAPP1. Ez
RészletesebbenProgramozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010
Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 12. ELŐADÁS Adatbázis-kezelés Delphiben 2 Adatmegjelenítés lekérdezés segítségével A táblákhoz hasonlóan a lekérdezések is az adatbázis
RészletesebbenA gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.
Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként
Részletesebbenabkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {
Adatkezelés JDBC-vel 1 abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp,
RészletesebbenJohanyák Zsolt Csaba: Grafikus felület programozása. http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu Copyright 2008 Johanyák Zsolt Csaba
Johanyák Zsolt Csaba: Grafikus felület programozása http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu Copyright 2008 Johanyák Zsolt Csaba 1. Gyümölcsárazó automata Készítsünk egy gyümölcsárazó
RészletesebbenAdatbázis Rendszerek II. 2. Ea: Gyakorló környezet
Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet 26/1 B IT v: 2018.02.21 MAN Gyakorló környezet apex.oracle.com/en/ 26/2 A regisztrációs folyamat 26/3 26/4 26/5 26/6 26/7 26/8 26/9 26/10 26/11 Feladatok
RészletesebbenHardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt
BME Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt Visual Studio, SystemC, SDL Tóth Gergely Endre 2013.03.18. 1 Bevezetés Ebben a dokumentumban leírom, hogy hogyan lehet
RészletesebbenJava Programozás 9. Gy: Java alapok. Adatkezelő 5.rész
Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik
RészletesebbenAdatelemzés SAS Enterprise Guide használatával. Soltész Gábor solteszgabee[at]gmail.com
Adatelemzés SAS Enterprise Guide használatával Soltész Gábor solteszgabee[at]gmail.com Tartalom SAS Enterprise Guide bemutatása Kezelőfelület Adatbeolvasás Szűrés, rendezés Új változó létrehozása Elemzések
RészletesebbenESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor
ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés Készítette: Gregorics Tibor Előfeltétel: OAF (EAF2) Kötelező házi feladatok: 4 darab feladat max. 5-5 pontért Feltételek 2 hét késés: legfeljebb 3
RészletesebbenMobil informatika gyakorlat. 2. óra: NFC a gyakorlatban
Mobil informatika gyakorlat 2. óra: NFC a gyakorlatban Mi az NFC? Near Field Communication Rövid hatótávolságú rádiófrekvenciás technológia (tipikusan 5-10 cm) 13,56 MHz frekvencia Az ISO/IEC 14443 szabvány
Részletesebbenmunkafüzet open eseményéhez
Makrók használata az Excelben - munkafüzet open eseményéhez VBA-eljárás létrehozása Az Auto_Open makróval kapcsolatos fenti korlátozások megkerülhetők az Open eseményhez rendelt VBA-eljárással. Példa Auto_open
RészletesebbenA gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:
1 Adatbázis kezelés 2. gyakorlat A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni: Táblák létrehozása,
RészletesebbenMS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1
SZE INFORMATIKAI KÉPZÉS 1 ADATBÁZIS-KEZELÉS MS ACCESS 2010 A feladat megoldása során a Microsoft Office Access 2010 használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni: Adatok importálása
RészletesebbenTartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés
Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS
RészletesebbenSQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik
RészletesebbenAdatbázisok* tulajdonságai
Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az
Részletesebben1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7
1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7 1.1. Új virtuális gép és Windows Server 2008 R2 Enterprise alap lemez létrehozása 1.2. A differenciális lemezek és a két új virtuális
RészletesebbenA lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába
A lista eleme 0 adat rész mutató rész Listaelem létrehozása p: Node 0 0 3 0 Az elemet nekünk kell bef zni a listába Deklarálás struct Node { int int value; Node* next; next; adattagok Létrehozás Node*
RészletesebbenEgyszerű alkalmazás fejlesztése JDeveloperben
Egyszerű alkalmazás fejlesztése JDeveloperben Készítette: Cséri Tamás A feladat a következő: Jdeveloperrel egy webes alkalmazást kell készíteni, amely segítségével egy hallgato(eha,nev,atlag) táblába lehessen
RészletesebbenAdatbázis-lekérdezés. Az SQL nyelv. Makány György
Adatbázis-lekérdezés Az SQL nyelv Makány György SQL (Structured Query Language=struktúrált lekérdező nyelv): relációs adatbázisok adatainak visszakeresésére, frissítésére, kezelésére szolgáló nyelv. Születési
RészletesebbenOKTATÓANYAG. Cseh Péter. Webes alkalmazás készítése JDeveloper segítségével CSPOAAI.ELTE
OKTATÓANYAG Webes alkalmazás készítése JDeveloper segítségével Cseh Péter CSPOAAI.ELTE Feladat: JDeveloper segítségével egy webes alkalmazás elkészítése, amellyel egy HALLGATO (EHA, NEV, ATLAG) táblába
Részletesebben