HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Adattáblák BDE nélkül


Példaprogram letöltése

5620 bájt

Annak, hogy paradox, dbase, vagy egyéb adattáblákat használhassunk alkalmazásainkban, feltétele, hogy gépünkre fel legyen telepítve a BDE. Néha azonban szükségünk lehet arra is, hogy adatainkat olyan számítógépen is elérhessük, ahol nincs BDE. Ebben a példában erre keresünk megoldást. Megnézzük, hogy egy adattábla tartalmát hogyan tehetjük hordozhatóvá, és hogy végül a hordozható adatokat hogyan építhetjük vissza az eredeti táblába.

A megoldás kulcsát a Flat állományok képezik. Ilyen állományokat a ClientDataset komponens segítségével hozhatunk létre és nyithatunk meg.
Induljunk el onnan, hogy van egy paradox táblánk, ami adatokat tartalmaz, ráadásul indexeket is használ. Ennek a táblának a tartalmát szeretnénk hordozhatóvá tenni. Ehhez a művelethez, természetesen még szükséges a BDE jelenléte.
Egy Table és egy ClientDataSet komponensre van szükségünk. A Table komponens segítségével megnyitjuk az adattáblát, majd szerkezetét átmásoljuk a ClientDataSet-be.
with ClientDataSet1 do begin
...
  FieldDefs.Clear;
  FieldDefs.Assign(Table1.FieldDefs);
  IndexDefs.Assign(Table1.IndexDefs);
Gondoskodnunk kell a mezők és az indexek lemásolásáról is. A lemásolt szerkezet után, a CreateDataSet metódust meghívva, létrejön a memóriában egy adattábla, amely használatához nincs már szükség a BDE-re. A létrehozott táblánknak még csak a szerkezete létezik, egyetlen rekordot sem tartalmaz.
A következő lépés, hogy át kell másolnunk a Table objektum rekordjait.
Table1.First;
while not Table1.Eof do begin
  Append;
  for i:=0 to Table1.FieldCount-1 do
    Fields[i].Value:=Table1.Fields[i].Value;
  Post;
  Table1.Next;
end;
A létrehozott BDE független táblánk még mindig csak a memóriában létezik. Lemezre kell mentenünk. A lemezre mentést a SaveToFile metódus hajtja végre.
SaveToFile(FFileName,dfBinary);
Ezzel elkészült a hordozható állomány. Ha használni akarjuk ezt az állományt, három dologra van szükségünk: magára az adatállományra, alkalmazásunkra, és a Windows\System32 könyvtárban található MIDAS.DLL állományra.
A hordozható állomány teljesen BDE független, ráadásul ugyanúgy lehetőséget biztosít az indexek használatára is. Az állomány megnyitásához a ClientDataSet komponensre van szükségünk. Egy egyszerű LoadFromFile metódus meghívásával betöltődik a tábla tartalma a memóriába. A LoadFromFile metódus, betöltés után, meg is nyitja a táblát.
ClientDataSet1.LoadFromFile(FFileName);
A táblához tartozó indexeket ugyanúgy használhatjuk, mint az eredeti paradox táblában.
ClientDataSet1.IndexFieldNames:='SZKod';
Egyetlen dologra kell nagyon vigyáznunk. A táblában bármilyen módosítást teszünk, az csak a memóriában történik, a lemezen elhelyezkedő fizikai állomány változatlan marad. Ha a módosításokat meg akarjuk őrizni, akkor a SaveToFile metódus meghívásával, újra el kell mentenünk a tábla tartalmát.
A hordozható tábla tartalmát, létrehozásához hasonlóan, vissza tudjuk másolni az eredeti paradox táblába. Természetes ehhez a művelethez már ismét szükségünk van a BDE-re.
Az adatok visszamásolása sok problémát felvet. Mi van azokkal az adatokkal, amiket töröltünk? Módosította-e a paradox táblát valaki, azóta, hogy elvittük az adatokat? Ha igen, akkor melyek azok a rekordok, amelyeket törölhetjük, vagy amelyeket felül kell írnunk?
A mellékelt példában először töröljük az eredeti tábla teljes tartalmát, majd a hordozható állomány teljes tartalmát átmásoljuk bele.
Az adatok hordozhatóvá tétele nagyon jó megoldás, ha azokra pusztán lekérdezési, tájékozódási célból van szükségünk. Az adatok visszamásolása is megoldható dolog, ha csak mi módosítjuk az eredeti táblát. Egy több felhasználós rendszerben viszont hatalmas körültekintést igényel, hiszen rengeteg problémát okozhat.
A mellékelt példaprogramot úgy készítettük el, hogy BDE-vel rendelkező, és anélküli számítógépeken is egyaránt használható legyen.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 250. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |