Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1



Hasonló dokumentumok
Adatbázis-kezelés ActiveX vezérl kkel

Adatbázis-kezelés ODBC driverrel

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérl ı kkel - 2

eseményvezérelt megoldások Vizuális programozás 5. előadás

Adatbázis-kezelés ActiveX vezérl kkel 2.rész

II. év. Adatbázisok és számítógépek programozása

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME

MDAC - Microsoft Data Access Components

ETR Pénzügyi közönségszolgálat

ArcGIS 8.3 segédlet 6. Dr. Iványi Péter

A.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll:

Oracle BI Administration Tool. Repository felépítése

Dr. Pétery Kristóf: CorelDRAW 9 testre szabás

Adatbázis rendszerek II. Adatbázis elérése C# kliens programból ADO.NET API-n keresztül

Access 2010 Űrlapok és adatelérés

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Internet Club Manager (Használati útmutató)

Blonde. Szépségszalon, Szolárium, Spa, Fitness. Ügyviteli Rendszer. Funkcionális Specifikáció. Verzió 1.1

Access adatbázis elérése OLE DB-n keresztül

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

NeoSzámla Használati Útmutató. Verziószám: 2014/Q2 Kelt: neoszamla.hu

Készletnyilvántartó program. (KESZLET) verzió. Kezelési leírás

Entity Framework alapú adatbáziselérés

Tartalomjegyzék 3 TARTALOMJEGYZÉK

Számlázás-házipénztár. (SZAMLA) verzió. Kezelési leírás

1. gyakorlat Ismerkedés az ArcGIS rendszerrel

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

I. fejezet Hello Világ! Programozás tankönyv. II. Fejezet. Helló Világ! avagy a Miért?-ek elkezdődnek

Message Broadcasting. Rendszerkörnyezet. A Message Broadcasting telepítése. Üzenetek létrehozása

SZET GYAK1: Követelmények ellenőrzése

Ismétlődő műveletek elvégzésének automatizálása

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

A Remote Support Platform 3.1 újdonságai

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

Erasmus+ Elektronikus pályázati űrlap. Technikai útmutató pályázók részére

Egységes és objektumközpontú adatbázis-kezelés (2. rész)

Az Outlook Express program beállítása:

Dr. Pétery Kristóf: AutoCAD LT 2002 Blokkok, Xrefek

FELHASZNÁLÓI ÚTMUTATÓ

3. gyakorlat Saját adatok használata

WIFI smart alkalmazás. Kezelési útmutató.

VÁLLALATIRÁNYÍTÁSI ÜGYVITELI PROGRAMRENDSZER. Váradi László OKTATÁSI SEGÉDANYAG. XIII. kötet

Adatbázis-kezelés ODBC-vel

1 Újdonságok a 3D szerkesztő módban

Útmutató a TestvérTérhez. A TestvérTér áttekintése

ALAPISMERETEK...6 A MICROSOFT ACCESS INDÍTÁSA...14 AZ ABLAK...14 MEGNYITÁS...16 TÁBLÁK...17 LEKÉRDEZÉSEK...18

4. Gyakorlat: Csoportházirend beállítások

Kézikönyv ABAS-TOOLS használata

Kéretlen levelek (spam) elleni védekezés a Caesaron

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Központi proxy szolgáltatás

libgdx alapok, első alkalmazás

DIÁKIGAZOLVÁNY. Felhasználói dokumentáció verzió 3.7. Budapest, 2015.

BBS-INFO Kiadó, 2013.

Eseményvezérelt alkalmazások

ArcGIS 8.3 példa 1. Dr. Iványi Péter

AutoCAD MAP DWG mapobject TOPOBASE konvertáló program dokumentáció

VirtualBox, Debian telepítés

Felhasználói dokumentáció. a számviteli politika programhoz

KELE3. Felhasználói kézikönyv

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

KASZPER dokumentáció Támogatott számla RITEK ZRt (12111) TÁMOGATOTT BEJÖVŐ SZÁMLA ÉRKEZTETÉSE, MÓDOSÍTÁSA, NYOMTATÁSA

Gate Control okostelefon-alkalmazás

Információ és kommunikáció Microsoft Windows XP

Felhasználói kézikönyv

HATODIK FEJEZET / FÜGGİ MODELLEK / TANGRAM


Word 2010 magyar nyelvű változat

Az animáció elve. Animáció. Képkockára ugrás. Képkockák és kockaszám. Megtekintés. Id szalag

PÉLDATÁR BEGYAKORLÓ FELADAT SÍKFESZÜLTSÉGI PÉLDA MEGOLDÁSA VÉGESELEM-MÓDSZERREL

Az MS Access adatbázis-kezelő program

A könyv tartalomjegyzéke

DWL-G520 AirPlus Xtreme G 2,4GHz Vezeték nélküli PCI Adapter

Kari Adminisztrátor. Funkcionális leírás

Paraméteres-, összesítı- és módosító lekérdezések

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Bonobo: A GNOME CORBA alapú komponens-megoldása Unixokra

BBS-INFO Kiadó, 2016.

OMRON PLC és IMO kijelzı egység összekötése

2500 Series multifunkciós készülék

.NET Microsoft.Net Framework

ÁEEK Kataszter. Felhasználói útmutató

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

Java felhasználói felület

Honlap Karbantartó (Site Manager)

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

BONYOLULT TÁLBAN MOZGÓ GOLYÓ

Pályázati űrlap kitöltési útmutató az EGT és Norvég Finanszírozási Mechanizmusok pályázati kiírásaihoz

CodeBlocks installálási segédlet

Incotex Group. Használati útmutató PLU manager

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Dr. Pétery Kristóf: Excel 2007 feladatok és megoldások 2.


LEVELEZÉS BEÁLLÍTÁSA

10. Gyakorlat: Alkalmazások publikálása Remote Desktop Szervízen keresztül

Adatbá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.

Bánsághi Anna Bánsághi Anna 1 of 54

Átírás:

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... 2 Saját ActiveX vezérlı regisztrálása... 3 Az ActiveX vezérlık használata... 4 Teszt projekt létrehozása... 4 A Circ ActiveX Control vezérlıelem beillesztése a Control eszköztárba... 4 ADATBÁZIS-KEZELİ ALKALMAZÁS KÉSZÍTÉSE ACTIVEX VEZÉRLİK HASZNÁLATÁVAL... 5 Projekt létrehozása... 5 ActiveX vezérlık beillesztése a projektbe... 5 A DBGrid Control és a Data Control vezérlık mőködése... 6 Data Control attribútumok (Microsoft ADO Data Control Version 6.0 (OLEDB))... 6 DBGrid attribútumok (True OLE DBGrid 8 Control)... 6 ActiveX vezérlık elhelyezése az alkalmazás ablakon... 6 IDC_DATA_CONTROL beállítása... 7 IDC_GRID_CONTROL beállítása... 7 Dinamikus táblacsere megvalósítása... 8 Összetett SQL parancsok végrehajtása... 9 SZABÓNÉ NACSA ROZÁLIA Email: nacsa@inf.elte.hu Honlap: people.inf.elte.hu/nacsa 2004. november Adatbázis-kezelés ActiveX vezérl k alkalmazásával I. Ebben a munkafüzetben megismerkedünk elıregyártott grafikus komponensek (ActiveX Control) használatával. ActiveX Az ActiveX a Microsoft által kifejlesztett technológia család, amellyel megoldható a különbözı alkalmazások közötti információ csere. Ez a technológia két, korábban alkalmazott technológiát ötvöz: OLE (Object Linking and Embedding); COM (Component Object Model). Az ActiveX technológia szabványa pontosan meghatározza, hogyan kell készíteni, és hogyan kell alkalmazni az ActiveX komponenseket. ActiveX Control Az ActiveX Control az ActiveX technológia család egy speciális fajtája. Az ActiveX vezérlık a Windows grafikus alkalmazásainál megismert GUI vezérlıkhöz hasonlóan viselkedı komponensek. Saját ActiveX vezérlı létrehozása Mielıtt alkalmazni kezdenénk bármely adatbázis-kezeléshez készített, összetett ActiveX komponenst, nézzük meg, hogyan hozhatunk mi magunk létre egy egyszerő, saját ActiveX vezérlıt. 1. oldal

Feladat: Készítsünk kört rajzoló grafikus vezérlıt, melynek be lehet állítani a háttérszínét. ActiveX projekt létrehozása File/New/Projects MFC ActiveC ControlWizard Projekt neve: Circ Platform: Win32 OK Finish OK A varázsló automatikusan létrehozza a vezérlıhöz szükséges osztályokat és fájlokat. Osztály CCircApp CCircCtrl CCircPropPage Feladat A main DLL forrás implementálása. Általában nem kell módosítani. A vezérlıelem funkcióinak implementálása. Ide írjuk be a vezérlı specifikus kódot. Sablon a tulajdonságlapok számára. Itt adjuk meg a vezérlı specifikus tulajdonságlapokat. A CCircCtrl osztály OnDraw() függvénye alapértelmezésben egy kört rajzol, így akár azonnal lefordíthatjuk és használhatjuk a vezérlıt. circctrl.cpp void CCircCtrl::OnDraw(CDC* pdc, const CRect& rcbounds, const CRect& rcinvalid) pdc->fillrect(rcbounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH))); Háttérszíntulajdonsághozzárendeléseavezérlőhöz pdc->ellipse(rcbounds); Készítsünk eszközgombot a vezérlıhöz. A RecourceView Bitmap könyvtárában kattintsunk duplán az IDB_CIRC bejegyzésre, majd rajzoljunk egy tele kört az eszközgombra. Ezután fordítsuk le a programot. A projekt lefordítása után keressük meg a project debug/release könyvtárában a circ.ocx kiterjesztéső fájlt. Ez a mi ActiveX Control komponensünk. Legyen a háttérszín a vezérlı egyik beállítható tulajdonsága (property). A háttérszín beépített tulajdonság (stock property), ezért nagyon könnyen hozzá tudjuk adni a vezérlıhöz. 2. oldal

View/ClassWizard/Automation fül Osztály neve: CCtrlCirc Add Property External name: BackColor Implementation: Stock OK/Close Illesszük be a színkezelı tulajdonságlapot a vezérlı tulajdonságlapjai közé. CCircCtrl.cpp ///////////////////////////////////////////////////////////////////////////// // Property pages // TODO: Add more property pages as needed. Remember to increase the count! BEGIN_PROPPAGEIDS(CCircCtrl, 2) PROPPAGEID(CCircPropPage::guid) PROPPAGEID(CLSID_CColorPropPage) END_PROPPAGEIDS(CCircCtrl) Módosítsuk a rajzoló függvény viselkedését, majd fordítsuk le a programot. void CCircCtrl::OnDraw( CDC* pdc, const CRect& rcbounds, const CRect& rcinvalid) CBrush* poldbrush; CBrush bkbrush(translatecolor(getbackcolor())); CPen* poldpen; // Paint the background using the BackColor property pdc->fillrect(rcbounds, &bkbrush); SajátActiveXvezérlőregisztrálása // Draw the ellipse using the BackColor property and a black pen poldbrush = pdc->selectobject(&bkbrush); poldpen = (CPen*)pdc->SelectStockObject(BLACK_PEN); pdc->ellipse(rcbounds); pdc->selectobject(poldpen); pdc->selectobject(poldbrush); Ahhoz, hogy az alkalmazások készítésekor használhassuk ezt a vezérlı elemet, regisztrálnunk kell. Vegyük fel a Circ ActiveX vezérlıt (circ.ocx) a Microsoft regisztrált komponensei közé. Ehhez meg kell nyitnunk a Circ ActiveX projektünket, majd ki kell adni a Tools/Register Control parancsot. A felbukkanó üzenet jelzi, hogy a regisztráló megtalálta a circ.ocx komponenst, és azt fel is vette a regiszrált komponesek közé. Ettıl a ponttól kezdve ezt a vezérlıt ugyanúgy használhatjuk, mint bármely más Windows-os GUI vezérlıt. A Tools/ ActiveX Control Test Container segítségével azonnal tesztelhetjük is a vezérlınket. A Test Container kiválasztása után az Edit/Insert New Control paranccsal töltse be a tesztelni kívánt vezérlıt, a Control/Invoke Methods paranccsal tesztelheti a vezérlı metódusait. Tesztelés után zárja be a projektet. 3. oldal

aa AzActiveXvezérlőkhasználata Tesztprojektlétrehozása Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1 Feladat: Készítsünk egy egyszerő projektet, amelyben megtanuljuk, hogyan kell használni az ActiveX típusú komponenseket. Project/New/MFC AppWizard(Exe) Project neve: CircTest Single Document Printing - kikapcsolva Base Class: CFormView Finish/OK A Circ ActiveX Control vezérlıelem beillesztése a Control eszköztárba Project/Add to Project/Component and Controls Registered ActiveX Controls könyvtár kiválasztása Circ Control kiválasztása Insert/Ok/Ok/Close Vegyük észre, hogy a Control vezérlı eszköztárán megjelent a Circ Control gombja. Helyezzünk el néhány Circ típusú vezérlıt (kört) az őrlapon, majd a Tulajdonság lap segítségével állítsunk be különbözı háttérszíneket az egyes vezérlıkön. A Circ ActiveX projekt és a CircTest tesztelı projekt letölthetı a people.inf.elte.hu/nacsa/eaf4/project/circ és a people.inf.elte.hu/nacsa/eaf4/project/circtest címekrıl. 4. oldal

Adatbázis-kezelı alkalmazás készítése ActiveX vezérlık használatával Feladat: Készítsünk egy olyan grafikus felülető alkalmazást, amellyel rugalmasan kezelni tudjuk az Eaf projekt tábláit. A feladat megoldásához használjunk ActiveX vezérlıket. Az ActiveX vezérlık használatának az a célja, hogy a mások által és/vagy egy másik alkalmazással elkészített, jól letesztelt vezérlıket használjunk a programunk gyors elkészítése érdekében. A Microsoft Visual 6.0 fejlesztıkörnyezet rendelkezik saját adatbázis-kezelést támogató komponenssel. Ilyen komponens például a DBGridControl (C:\Widows\System32\DBGRID32.OCX), vagy a Microsoft Remote Data Control (C:\Windows\System32\MSRDC20.OCX) adatbázis-kezelést támogató vezérlı. E két vezérlı alkalmazása során azonban azt tapasztaltam, hogy üres táblázatok esetén nem jól mőködik az új rekord felvétele, ezért helyette a True DBGrid Pro 8.0 ActiveX vezérlıt fogjuk használni. Ezt a vezérlıt 30 napos kipróbálásra lehet letölteni. Letöltéshez regisztrálni kell a http://www.logon-int.com/product_evaluate.asp címen, majd a levélben visszajelzett tdbgrid8_****.exe fájl végrehajtása után a vezérlı bekerül a regisztrált ActiveX vezérlık közé, és az elızıekben bemutatott módon felhasználható. Megjegyzés: Természetesen, ha Önnek nem sikerül beszerezni az itt ismertetett ActiveX vezérlıt, használja nyugodtan a Microsoft vezérlıit, vagy bátran keressen más AciveX vezérlıt a feladat megoldásához. Az adatbázis-kezelést támogató ActtiveX vezérlık használata és beállítása nagyon hasonlít egymáshoz. Projekt létrehozása Project/New/MFC AppWizard(Exe) Project name: ActiveTables Single Document Printing - kikapcsolva Base Class: CFormView Finish/OK Forditás/Futtatás A projekt lefordítása után azonnal rendelkezésünkre állnak a legalapvetıbb adatbázis navigáló funkciók. ActiveX vezérlők beillesztése a projektbe Project/Add to Project/Component and Controls 5. oldal

Registered ActiveX Controls könyvtár kiválasztása True OLE DBGrid 8 Control kiválasztása - Insert/Ok/Ok Microsoft ADO Data Control Version 6.0 (OLEDB) kiválasztása - Insert/Ok/Ok Close Keresse meg a Control eszköztárban az új vezérlıelemek gombjait. A DBGrid Control és a Data Control vezérlők működése A Data Control kezeli, a DBGrid Control táblázatos formában megjeleníti az adatokat. A DBGrid az adatbázis felépítésére vonatkozó információt a Data Control vezérlıtıl kapja meg, és a kapott információk alapján automatikusan megjeleníti az adatbázis tábla oszlopait. Az alábbiakban felsoroljuk a két vezérlı legfontosabb attribútumait és azok jelentését. Data Control attribútumok (Microsoft ADO Data Control Version 6.0 (OLEDB)) General fül ID: A azonosítója Caption:: A vezérlı felirata Visible: Látható, vagy nem látható a vezérlı Control fül Source of Connection: Adatforrás beállítása Use ODBC Data source name: ODBC adatforrás neve Record Source fül Command type: DBGrid attribútumok tribútumok (True OLE DBGrid 8 Control) General fül ID: Caption: Visible: Tab stop: All fül Data Source AllowAddNew AllowUpdate AllowDelete CursorLocation CursorType ActiveX vezérlők elhelyezése az alkalmazás ablakon Adatkijelölés módja: tábla; SQLszöveg A vezérlı azonosítója A tábla cím felirata Látható vagy nem látható a tábla A Tab leütésekor itt meg kell-e állni Ezen a helyen hozzárendelhetünk a táblázathoz egy adatszolgáltatót. Ekkor az adatszolgáltatóval együttmüködve jelennek meg az adatok a táblázatban. Új rekord felvételének tiltása/engedélyezése Rekord módosítás tiltása/engedélyezése Rekord törlés tiltása/engedélyezése Ezzel a beállítással arról dönthetünk, hogy a lekérdezett táblázat adatait a szerver oldalon (ott, ahol az adatbázis-kezelı van), vagy a kliens oldalon (ott, ahol az alkalmazás fut), szeretnénk tárolni. Ezzel a beállítással arról dönthetünk, hogyan viselkedjen a adatbázisunk az adatok megváltoztatásakor, ha egyszerre több felhasználó is használja az adatbázist.( Kinek a módosítása érvényes? ) Helyezzünk el egy Microsoft ADO Data Control Version 6.0 (OLEDB) vezérlıt és egy True OLE DBGrid 8 Control vezérlıt az alkalmazás ablakra. A Data Control (adatvezérlı) az adatokért, a DBGrid Control az adatok táblázatos formában történı megjelenítésért felel. Ha a két vezérlıt összekapcsoljuk, akkor a DBGrid az adatbázis felépítésére vonatkozó információt megkapja a Data Control vezérlıtıl, és a kapott információk alapján automatikusan megjeleníti z adatbázis tábla mezıit. A vezérlık összekapcsolása után akár a megjelenített táblában, akár az adatokban történik változás, mindkét vezérlı azonnal érzékeli azt. 6. oldal

IDC_DATA_CONTROL beállítása (Kattintsunk jobb egérfüllel a vezérlıre és válasszuk ki a Properties menüpontot.) General fül ID: IDC_DATA_CONTROL Caption:: Adat vezérlı Visible: true Control fül Source of Connection Use ODBC Data source name: Elemi alkalmazások fejlesztése Record Source fül Command type 2 adcmdtext Command Text(SQL): select * from csoport (A program indításakor a csoport tábla jelenik majd meg.) IDC_GRID_CONTROL beállítása (Kattintsunk jobb egérfüllel a vezérlıre és válasszuk ki a Properties menüpontot.) General fül ID: IDC_GRID_CONTROL Caption: Adat tábla Visible: true Tab stop: true All fül Data Source IDC_DATA_CSOPORT AllowAddNew true AllowUpdate true AllowDelete true Split fül Split(00) ExtendedRightColumn: Igazra állítva az utolsó (jobb oldali) oszlop kitölti a táblaméret jobb szélét. Forditás/Futtatás A projekt lefordítása után azonnal dolgozhatunk a csoport táblázattal. Beszúrhatunk új rekordokat, ill. törölhetjük, módosíthatjuk azokat. Vegye észre, hogy a két vezérlı a navigálás során összehangoltan mőködik. 7. oldal

Dinamikus táblacsere megvalósítása Feladat: Egészítsük ki a programot úgy, hogy gombokkal lehessen kiválasztani, melyik táblával szeretnénk dolgozni. Az utolsó oszlop mögötti üres sáv eltüntetésére állítsuk be az ExtendedRightColumn opciót igazra. DBGrid Control módosítása: Split fül Split(00) ExtendedRightColumn: true Rendeljünk változót a Data Control (m_datacontrol) és a DBGrid (m_gridcontrol) vezérlıhöz, azért, hogy a beállításokat programból is megadhassuk. (ResourceView/Dialog/IDC_ACTIVETABLES_FORM/Ctrl+Dupla kattintás a Data Control-ra/Változó neve: m_datacontrol) A projekt különbözı táblázatainak megjelenítéséhez helyezzünk gombokat az őrlapra. IDC_DIAK (Caption: Diákok); IDC_CSOPORT (Caption: Csoportok); IDC_FELEV (Caption:Félévek); IDC_GYAKVEZ (Caption: Gyakorlatvezetık) Az osztályvarázsló segítségével rendeljünk eseménykezelıket a gombokhoz, majd adjuk meg az eseménykezelık mőködését. Activetablesview.cpp ///////////////////////////////////////////////////////////////////////////// // CActiveTablesView message handlers void CActiveTablesView::OnCsoport() m_datacontrol.setrecordsource("select * from csoport"); m_datacontrol.refresh(); void CActiveTablesView::OnDiak() m_datacontrol.setrecordsource("select * from diak"); m_datacontrol.refresh(); void CActiveTablesView::OnFelev() m_datacontrol.setrecordsource("select * from felev"); m_datacontrol.refresh(); void CActiveTablesView::OnGyakvez() m_datacontrol.setrecordsource("select * from gyakvez"); m_datacontrol.refresh(); 8. oldal

Rejtsük el az adatvezérlıt az alkalmazás ablakon. Data Control beállításai (Property) General fül ID: IDC_DATA_CONTROL Caption: Adat tábla Visible: false Összetett SQL parancsok végrehajtása Feladat: Összetett lekérdezések kezelésére helyezzünk el egy szövegdobozt az alkalmazás ablakon. Az SQL parancs végrehajtása gombra kattintva állítsuk át az adatforrást a szövegdobozban megadott SQL parancs szerint. Helyezzünk el egy gombot (IDC_SQL_EXECUTE- Caption: Sql parancs végrehajtása) és egy szövegdobozt (IDC_SQL_TEXT) az alkalmazás ablakon. Rendeljünk érték típusú változót (CString m_sqltext) a szövegdobozhoz. Az osztályvarázsló segítségével illesszük be a projektbe az IDC_SQL_EXECUTE gomb eseménykezelıjét, majd adjuk meg az eseménykezelı mőködését. activetableviews.cpp void CActiveTablesView::OnSqlExecute() UpdateData(); m_datacontrol.setrecordsource(m_sqltext); m_datacontrol.refresh(); Teszteljük az új funkciót! Íme egy lehetséges összetett Sql parancs: select tag.diak_id, concat(diak.nev,'[',diak.azon,']') diak_azon,tag.csoport_id,pont1,pont2,pont3,pont4 from tag,diak where tag.diak_id=diak.diak_id and csoport_id = 3 Forditás/Futtatás Vegyük észre, hogy a DBGrid vezérlı módosítása nélkül, csupán az adatszolgáltató vezérlı módosításával a DBGrid átkonfigurálta önmagát, és mindenkor az SQL parancs szerinti táblázatot jeleníti meg. Ha a lekérdezés eredménye egy igazi táblázat, lehetséges új rekord felvitele, módosítása és törlése. Összetett lekérdezések esetében nem lehet új sort beszúrn, ill. sorokat törölni még akkor sem, ha az AllowAddNew ill. az AllowDelete igazra lett állítva. 9. oldal

Megjegyzés: Az alkalmazás gyorsan elkészíthetı, de nem minden esetben kényelmes. Sokkal egyszerőbb lenne az adatok kezelése, ha pl. a gyakvez_id helyett a gyakorlatvezetı nevét, félév_id helyett a félévet azonosító szöveget látnánk. Ilyen megoldásra az Adatbázis-kezelés ActiveX vezérlıkkel II. munkafüzetben mutatunk példát. A munkafüzetben bemutatott példaprogram letölthetı a people.inf.elte.hu/nacsa/eaf/eaf4/projects/activetables címrıl. 10. oldal