Adatbázisok használata a dao használatával
Adatbázisok használata a DAO használatával
Egyre több programot használnak adatbázisadatok tárolására. Az adatbázisok kezeléséhez használt egyik eszköz a DAO (Data Access Objects) könyvtár. Erről szól, és ebben a cikkben tárgyalja.
Először csatlakoztassa ezt a könyvtárat. Ehhez válassza ki a "Microsoft DAO 3.6 Objektumok könyvtár" pontot a Project | References menüben. A Visual Basic 6.0 tartalmazza a 3.6 verziójú könyvtárat. Ha van egy korábbi verziója - jelölje meg, nincsenek különösebb különbségek.
Megjegyzés: Ez a cikk az MS Access adatbázisok (* .mdb) használatával foglalkozik. Vannak más típusú adatbázisok is, például a FoxPro.
Hogyan válasszuk ki az adatokat? Először írja le a változókat.
Nyissa meg az adatbázist. Ehhez hívja az OpenDatabase metódust, és adja át az adatbázis teljes elérési útját és fájlnevét paraméterként. Ne feledje, hogy a db egy objektum, ezért a kulcsszót írjuk.
Lekérdezzük az SQL lekérdezést. Tegyük fel, hogy meg kell kapnunk a Megrendelések táblázat összes területét.
Most nyissa meg a rekordot. Ehhez az első paraméterrel - az SQL lekérdezéssel - a db objektum OpenRecordset módját hívjuk. Ennek az objektumnak további 3 opcionális paramétere van.
A típusparaméter határozza meg a rekord típusait. A következő államok egyik értékét veheti igénybe:
Szerkeszthető objektum. Az indexelt táblák használata során gyorsan megtalálhatja és visszaadhatja a rekordokat.
Frissítve. Hatékony, mert a fő lekérdezés adatainak referenciáit mutatja be (nem valós adatok). Visszajátszhatja a rekordokat több táblázatból a csatlakozás használatával, még akkor is, ha ezek a táblák több adatbázisból kapcsolódnak. Az ilyen nyilvántartások sok esetben frissülnek.
A Dynaset és az asztali objektumoknál gyorsabban feldolgozható, különösen kis rekordok számára. Visszajátszhatja a rekordokat több táblázatból csatlakozással. Az ilyen nyilvántartások sok esetben frissülnek.
Futtat gyorsabb, mint a pillanatkép objektum. A szakszervezet használatával több táblából is visszajuttathatja a rekordokat.
Frissítve. Visszajátszhatja a rekordokat több táblázatból csatlakozással.
A típusparaméter alapértelmezett értéke a dbOpenTable.
Az opciók paraméter a megnyitott rekordok egyes jellemzőit határozza meg. Ez egy olyan értéket vehet fel, amely 11 konstans kombinációjából áll.
A LockEdit paraméter (a DAO 3.5-ben ezt a paramétert zároltnak nevezik) meghatározza a rekord feloldásának típusát. 5 állandót tartalmazhat:
Az előző felvételre való áttérésre szolgál.
Hasznos tulajdonságok: BOF és EOF.
A BOF True értéket ad vissza, ha az aktuális rekord a Recordset objektum első rekordja előtt van.
Az EOF True értéket ad vissza, ha az aktuális rekord a Recordset objektum utolsó rekordja után van.
Az aktuális rekord a Fields osztályban van.
A Debug.Print helyett természetesen az assignment operator (=)
Zárja be a rekordot és az adatbázist
Az eljárás végén, hogy szabadítsák fel a memóriát
Rekordok hozzáadása és szerkesztése
Hasonló technológiát alkalmaznak a rekordok hozzáadásához és módosításához.
Amikor felveszi a rekordot, nyissa meg a rekordot.
Egy bejegyzés hozzáadásához használja a Recordset objektum AddNew módját.
Most hozzáadódik a rekord, és kitöltjük a bejegyzés összes mezőjét.
Bezárjuk a rekordot és az adatbázist, és felszabadítjuk a memóriát.
A bejegyzés módosítása nagyon hasonló az előző kódhoz. A rekord módosításához használja a Szerkesztési módot. Szintén meg kell változtatnia az SQL lekérdezést, és így kell tennie:
Feltételezzük, hogy létezik olyan azonosító mező, amelynek típusa numerikus, és értéke minden egyes rekord esetében egyedülálló. Ebben az esetben módosítjuk a rekordot, amelynek mezőazonosító értéke 23.
Törölheti a rekordot két módon. Az első mód az SQL lekérdezés végrehajtása a DELETE paranccsal. A rekordot azonosítsa a mezőazonosítóval. Feltételezzük, hogy az azonosító mező értékek egyediek az egyes rekordok esetében. Törölje a rekordot, amelynek azonosítója 5.
Nem kell megnyitnia a rekordot, mert nem kell adatokat gyűjteni az adatbázisból. A lekérdezés végrehajtásához egy Database objektum végrehajtási módját használjuk. 2 paramétere van. A Query első paramétere a végrehajtható lekérdezés stringje. A második opcionális paraméter opció állandó vagy konstans kombinációja, amely tükrözi a végrehajtható lekérdezés jellemzőit.
A rekord törlésének másik módja a Recordset típusú objektum törlési módjának használata. Ez a módszer törli az aktuális rekordot. Nincs paramétere.
A bejegyzések száma és az aktuális rekord száma
A rekordok számának meghatározásához használja a Recordset objektum RecordCount tulajdonságát. De van egy kis ellentmondás. Ha egy rekord, például Dynaset, Snapshot vagy ForwardOnly, a RecordCount tulajdonság csak az utolsó rekord elérésekor jeleníti meg a rekordok számát. Ebben az esetben azonnal át kell térnie a rekord végére.
Az aktuális rekord számát az AbsolutePosition tulajdonság határozza meg. A számlálás a semmiből indul. Ie ha az aktuális rekord az első, akkor az AbsolutePosistion megmutatja a 0. Ha az aktuális rekord az első vagy az utolsó után van, akkor az AbsolutePosition tulajdonság -1 lesz látható.
A PercentPosition tulajdonság az aktuális rekordszám százalékát adja vissza a rekordok számából.
A DAO-val való együttműködés egyik példája itt található.