HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Paradox használata hálózatban


Paradox használata hálózatban 4. rész

Példaprogram letöltése

51190 bájt

Az előző részben elkészítettük a programot, amely egygépes rendszerekben használható. A programot most átalakítjuk hálózatos alkalmazássá. Megnézzük, hogy miként lehet paradox táblákat hálózatban kezelni, és mik azok a lépések, amelyek ehhez szükségesek.

A mellékelt példaprogram futtatása előtt állítsa be az adatbázis elérési útját a database.dat állományban.
Ha egy adatbázishoz több számítógépről is hozzá akarunk férni, akkor az adattáblákat természetesen olyan helyen kell elhelyeznünk, amely minden számítógép számára elérhető. A programunk továbbra is az egyes számítógépen fog futni, csak közös adatbázist használnak. Minden egyes számítógépen telepítve kell hogy legyen a BDE.
Az adatbázis elérési útjának megadásához létrehozzuk a database.Dat állományt, amely TEXT formátumú. Az állomány első sorába beírjuk az adatbázis elérési útját, így később ezt bármikor módosíthatjuk.
Az elérési utat a DataModule OnCreate eseményében olvassuk be, még mielőtt megnyitnánk az adattáblákat.
AssignFile(f,ExtractFilePath(Application.ExeName)+'database.dat');
Reset(f);
Read(f,Path);
CloseFile(f);
Az adattáblák megnyitásának kódját is módosítanunk kell.
TOrvosok.DataBaseName:=Path;
tOrvosok.TableName:='orvosok.db';
tOrvosok.Open;
Mielőtt megnyitnánk az adattáblákat, két beállítást meg kell tennünk.
Az első: a Registry-ben, a LOCAL SHARE értékét igazra kell állítanunk.
Reg.RootKey:=HKEY_LOCAL_MACHINE;
RegReg.OpenKey('Software\Borland\Database Engine\Settings\SYSTEM\INIT',False);
Reg.WriteString('LOCAL SHARE','TRUE');
A második: hálózatos adatbázis kezelés esetén a gépek egy kommunikációs állományt használnak. Ezen keresztül tudják jelezni egymásnak, hogy ki melyik rekordot használja, módosítja.
A paradox kommunikációs állománya a PDOXUSRS.NET fájl. Az állomány létrehozásáról a rendszer gondoskodik, nekünk csak azt a mappát kell megadnunk, ahová ezt a fájlt helyezni szeretnénk. Ez az állomány akárhol lehet, függetlenül az adatbázistól, a lényeg, hogy minden számítógép ugyanazt az állományt használja.
Session.NetFileDir:=Path;
Az adattáblák eléréséhez használt elérési utat minden gépen ugyanolyan meghajtó névvel és elérési úttal kell definiálnunk, egyébként a BDE összezavarodik.
Az alkalmazás tesztelését egyetlen gépen is végezhetjük, ilyenkor több példányban kell elindítani a programot.
Hálózati adatbázis kezelés során előfordulhat, hogy az indexekkel néha probléma van. Ilyenkor célszerű törölni az indexeket, majd újra létrehozni őket. Ez általában meg szokta oldani a problémát.
A legnagyobb problémát a zárolt rekordok okozzák. Ha egy rekord módosítás alatt van, akkor a BDE automatikusan zárolja azt. Ha egy másik alkalmazás ilyenkor próbálja azt elérni, akkor a BDE hibaüzenetet ad. Ezt úgy tudjuk kezelni, hogy a lehető legkevesebb ideig írunk a táblába, a rekordhozzáféréseket pedig try – except blokkokba szervezzük. Ezt meg kell tennünk minden egyes helyen, ahol a program ír az adatbázisba.
Egy másik probléma, amit ugyancsak meg kell oldanunk, az adatok frissítése. A frissítéshez használhatunk például egy Timer komponenst, amely egy másodpercenként frissíti a Table komponenseket. A Timer-t elhelyezhetjük a DataModule-on. OnTimer eseményében az alábbi kódot kell futtatnunk:
if TBetegek.State=dsBrowse then
  tBetegek.Refresh;
if tVizsgalat.State=dsBrowse then
  tVizsgalat.Refresh;
Alkalmazásunkat védelmekkel kell bővítenünk. A műveletek elvégzése előtt meg kell vizsgálnunk, hogy az adott rekord létezik-e még. Ez különösen igaz a módosításra, vagy például arra az esetre, amikor egy beteg megjelenési időpontjait tallózzuk, miközben valaki kitörli az adott beteget.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 296. 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 |