A táskát modell fejlesztése adatbázis-alkalmazások

Üzleti követelmények működése a mobil felhasználók számára

automatizálásához tevékenység végrehajtása az információs rendszerek igényel adatbázis-fejlesztők végrehajtják az új funkciók a kérelmek fejleszteni. Létrehozása szoftver, amely lehetővé teszi a felhasználók számára, hogy csak az irodán belül, ez nem elég a mai napra. Office személyzetre van szükség, hogy az információhoz való hozzáférés gyűjtemények a cég üzleti úton ki a házból, az ügyfél irodájában. Ebben az esetben a felhasználók nem csak azt, hogy az adatok megtekintéséhez, hanem képes módosítani őket. Fontos követelmény a részét a rendszergazdák az információs rendszerek a könnyű telepítés és konfiguráció kliens alkalmazás.

Összegezve a fentieket, akkor lehet, hogy kijelölje az alapvető vásárlói követelményeknek szoftver mobil ügyfél-információs rendszer:

  • Az a lehetőség, a megszerezhető adatok, az alkalmazottak a vállalaton kívül irodájában.
  • Az a lehetőség, hogy megváltoztatja a mobil kliens adatokat, amelyeket aztán össze kell hangolni a központi adatbázisba.
  • Munkavégzésre való képesség hiányában a mobil kliens állandó kapcsolatot irodában.
  • Könnyen telepíthető, a telepítést és alkalmazások működtetésére létrejött.

Technikai problémák és megvalósításait

Végrehajtása során a fent leírt követelményeknek az ügyfelek felveti a következő technikai problémák:

  • Felhasználói információk tárolására kapott közötti kommunikációs munkamenetek a központi iroda azzal a lehetőséggel, hogy folytassa működését a mobil felhasználók számára. Más szóval, a felhasználó nem veszi észre a különbséget az alkalmazás on-line és off-line módban.
  • Szinkronizálás a központi adatbázis által végrehajtott módosításokat a felhasználó. Mivel az idő között szerkeszti a mobil felhasználói rekord, és így egy központi adatbázisba lehet napok, hetek vagy akár hónapok során használt hagyományos kliens-szerver modell rögzíti a zárszerkezet nincs értelme. Ebben az esetben, néhány mobil felhasználó egyszerre szerkeszteni egy-egy példányát az adatokat a szerverre, majd amikor megpróbálja szinkronizálni az adatokat a szükségszerűen összeférhetetlenséget változások az azonos felvételi különböző felhasználók számára. Ezek a konfliktusok - konfliktusok szinkronizálás. Eszközt ad a konfliktusmegoldás sinhronizatsii- egyik fő követelmények technikai végrehajtása az ilyen szoftverek.

Ezután fogjuk röviden áttekinteni a leggyakrabban használt opciókat leküzdik a mobil felhasználók számára hozzáférést biztosít a központi adatbázisba.

Az internet és a web

Web eredetileg tervezték, mint egy földrajzilag elosztott hálózati hozzáférést lehetővé tevő különböző információforrások az on-line módban. A fő hátránya ennek a módszernek, hogy szükség van, hogy mindig csatlakozik a hálózathoz. Ez a hátrány gyakorlatilag nem teszi lehetővé, hogy ezt a megközelítést a mobil felhasználók számára.

lemásolják adatbázisok

Replication - egy adat szinkronizációs folyamat között több adatbázis-szerver. A módszer alkalmazása a rendszer felépítése a következő:

A legtöbb modern adatbázis-kiszolgálók beépített replikációs támogatás segítségével megoszthatja az adatokat több szerver. Az ügyfél ebben az esetben nem igényel speciális módosításokat. A fő hátránya ennek a módszernek, hogy szükség van a telepítési és karbantartási az adatbázis szerver a kliens gépen.

működő modell aktatáska

Táska modellben az ügyfél munkáját az adatbázis támogatása nélkül állandó kapcsolatot. A kliens csatlakozik az adatbázishoz, letölti a szükséges adatok, jelentések a rajtuk végrehajtott módosításokat, majd kikapcsol. A Delphi, a modell lehet megvalósítani ADO vagy MIDAS lehetőségeket.

Ha létre egy alkalmazást, amely megvalósítja a modell táskát számos részfeladat:

  1. Lekéri az adatokat a központi szerver;
  2. Adatok tárolására egy helyi cache;
  3. Betöltése az adatokat a helyi cache;
  4. Szinkronizálás a központi szerver és a feldolgozási időzítési hibák.

A mi például egy adatbázis szerver, I használt MS SQL szerver. Ez ParamsHolder tartalmazó adatbázis csak egy táblázatot Params jött létre az alábbi területeken:

A keret fő formája az alkalmazás az ábrán látható. Nem írom le részletesen a keret, akkor ha szükséges, olvassa el a mellékelt példa.

Megjegyezzük, csak az, hogy a kapcsolat a szerverrel nevű összetevő ParamConns és hozzáférési összetevő ParamsCS adatokat. Mi elsősorban a végrehajtását a fenti létre részfeladatok aktatáska alkalmazásokat. Mindezek a részfeladatok által végrehajtott fellépés új.

Végrehajtása a modell segítségével ADO aktatáska

Mivel a Data Access Components keresztül ADO képesek megmenteni és terhelési adatokat / egy fájlt, akkor lehet használni, hogy dolgozzon alkalmazások táskát.

Lekéri az adatokat a központi szerver

Kód végrehajtására adatgyűjtő egy központi szerver, további tárgyalása kódsorokat számai:

A cél ennek a kód csatlakozni egy központi szerver, az adatok fogadására és tárolja azokat a helyi cache későbbi használatra.

próbálja blokk ... végül (line 1, 12-15) lehetővé teszi számunkra, függetlenül attól, hogy a siker a kapcsolatot a szerver le van választva, és megjeleníti a felhasználó adatait a helyi cache. A kód, amely közvetlenül csatlakozik a szerverhez, és töltse le az adatokat tartalmazott vonalak 2-10. Blokk próbálja kivételével előírja hibakezelését kézhezvételét adatokat a szerverről. Ha hiba történik, a felhasználó látható üzenetet lehetetlen kapcsolatot. A kód maga hajtja végre az adatgyűjtő, akkor 5-9 vonalak. E sorok felállítottuk a komponens osztály TADODataset (ParamsCS) együtt kell működnie a szerver és nyitott. Lehet kérni: miért is kellene minden alkalommal. Meg kell tenni, hogy ha kinyitja a helyi cache (módszerével TADODataset.LoadFromFile) adatbázisba maga szerkezetátalakítási tulajdonságait CommandType és CommandText. LoadFromFile módszer az úgynevezett belül keresetet act_ConnectLocal. tartjuk a mintát egy helyi cache, ami a vonatkozó cselekvési (line 11), miután megkapta a szerverről.

Az adatok tárolása a helyi cache

Ahhoz, hogy működjön együtt az adatok nélkül állandó kapcsolatot a szerver (és véglegesen betöltött program) fenntartásához szükséges adatok és a felhasználói módosításokat. ADO komponensek (örökösök TCustomADODataset) képesek arra, hogy mentse a minta adatait egy fájlt SaveToFile módszerrel. A metódus két paramétert. Az első - a fájl nevét, a második adattároló formátum. Támogatja a két formátum az adatok tárolása:

  • XML
  • ADTG (Advanced Data Tablegram)

Alapértelmezett megtakarítás jelentkezik ADTG formátum, bár én személy szerint inkább menteni XML formátumban, mert sokkal kényelmesebb az észlelés adatai személy.

Megjegyzés
Ha a fájlnév kiterjesztés XML, az adatok tárolása XML formátumban, figyelmen kívül hagyva a második paraméter a módszer saveFile.

A kód az adatok mentéséhez egy helyi cache áll hívás ParamsCS.SaveFile módszer.

Adatok betöltése a helyi gyorsítótárból

Letölteni az adatokat a fájlból TCustomADODataSet örökösök LoadFromFile módszer. Mielőtt le a fájlt ParamsCS Connection ingatlan kell állítani a nulla, mivel a terhelés során egy kísérlet, hogy adatbázis-kiszolgálóhoz kapcsolódni. A kód a következő:

Megjegyzés
Hívjon LoadFromFile adatbázisba automatikusan megváltoztatja az parancstípusnál (Saint-CommandType) a cmdFile és CommandText ingatlan megőrzi a fájl nevét, ahol elindult.

Az adatok szinkronizálása a szerver

A szinkronizálás magában továbbítására és fogadására változásokat a kiszolgálóról történő frissítés (minden felhasználó), az adatok a felhasználó által. Megközelítés az adatokat a szerverre, már itt tárgyalt fog összpontosítani a változásokat az átviteli probléma a központi adatbázisba. változás szállítási feladat lehet osztani két neposredsvtenno átadása és feldolgozása szinkronizálási hibákat.

Transzfer a változások hívja UpdateBatch. Mint már mondottuk, az oka a szinkronizálási hibák egyidejű szerkesztését rekordok több felhasználó által. Az alapértelmezett fiók a kiszolgálón keresi a kulcsot a területen, és a mezőket, amelyeket a felhasználó tette a változást. Ebben az esetben, ha egy másik felhasználó sikerült csinálni az ugyanazon területre, hogy rögzíti a változásokat, és beépíteni azokat az adatbázisba, a rekord nem található. Van egy időzítési hiba. rekord keresési algoritmus által vezérelt tulajdonság frissítése Criteria kifogást ADO RecordSet. Frissítés kritériumai vehet a következő értékeket:

Keresés az összessége az oszlopokat. A legtöbb „kemény” üzemmódban.

Keresés csak a kulcsfontosságú területeken. A legtöbb „szelíd” módban. Konfliktus keletkezik csak akkor, ha a rekordok törlésére egy adatbázisból.

Ha a tábla TimeStamp típusú mező szinkronizálni fogják használni

Keresés összesített kulcsmezők és mezők információkat tartalmazó változások

Miután érzékelte szinkronizálási hibákat generált rendkívüli helyzet c EOleError osztály üzenetet az lehetetlen, hogy mentse a változtatásokat. A szinkronizálás hibakezelés támogatott ADO, verziótól kezdődően 2.7. Ebben az esetben az algoritmus a konfliktusmegoldás megadott MSDN, a következő:

Szűrjük tulajdonság az objektum Recordset ADO állítva adFilterConflictingRecords. Ez megmutatja csak az ütköző bejegyzések.

Hívja a Resync módszer ugyanazt a tárgyat a paraméter egyenlő AffectRecords adAffectGroup, amelyben ResyncValues ​​egyenlő adResyncUnderlyingValues. Ez lesz a frissítés állapotával kapcsolatos adatok a konfliktus bejegyzéseket a szerver. Az aktuális értékek rekordseta rekordmezők tárolja az ingatlan UnderlyingValue kifogást Field, kezdve OriginalValue, és megváltoztatta a felhasználó által az értéket.

Bemutatás hogy a felhasználó egy sor ütköző bejegyzéseket és értékeit saját területén, akkor lehetőséget ad számára, hogy módosítsa a felvétel a konfliktusok és a konfliktusok megoldása.

Írja módosítani a felhasználói adatbázis, akkor hívja a UpdateBatch adAffectGroup paramétert.

hibakezelés, csináltam egy külön ADOReconcileError modult. Ez határozza meg az eljárás HandleADOReconcileError, fenntartásáért felelős a szinkronizálási hiba kezelését. A szinkronizálás kód maga így néz ki:

változtatások visszavonása

Egy másik funkció a képesség, hogy használni ADO felhasználó visszavonhatja a rajtuk végrehajtott módosításokat. Ezt a funkciót hajtja végre CancelBatch. Amikor felhívja a c arAll paraméter (az alapértelmezett beállítás), hogy megszünteti az összes módosítást. Ha megadta arCurrent lehetőség a változtatásait vonja vissza a jelenlegi rekord egy adatbázisba.

A következő részben meg fogja vizsgálni a végrehajtás egy modell segítségével aktatáska MIDAS alapok.

Kapcsolódó cikkek