Miért van szükség az adatok nem menthetők

Miért az adatokat nem lehet menteni?

Három rétegű alkalmazás (TClientDataSet, TDCOMConnection, TPatasetProvider, TDataBase, TQuery). A kliens ki az áruk megérkezése. Ezek hajtott a TClientDataSet. Ezután nyomja meg a „végre”, ami hasonlóan végeztük az alábbi kódot:

A kliens:

AppServer.StartTransaction; // Valójában DataBase.StartTransaction

Prihod.ApplyUpdates (0); // Mentse a változtatásokat, hogy az adatbázis
AppServer.CreatePrihodDoc (.);

A távoli szerver funkció a következőképpen néz ki:


eljárás CTradeServer.CreatePrihodDoc (.);
kezdődik
# XA0; Goods.Open; // CommitUpdates = True. Fekszik TRemoteDataModule
# XA0; Partii.Open; // asztali játékok, tulajdonságok tezhe
# XA0, próbálja

# XA0; # XA0; # XA0; # XA0; összekötő táblázat szállítmányok (és 4 asztal)>

# XA0; # XA0; Goods.ApplyUpdates; // Mentse a változtatásokat, hogy az adatbázis
# XA0, végül
# XA0; # XA0; Goods.Close;
# XA0; # XA0; Partii.Close;
# XA0; end;
végén;

Hívjon Prihod.ApplyUpdates (0) elmenti a változásokat plakk Goods.db a szerveren. Később CreatePrihodDoc függvény megnyitja a tárolt készlet Áruk megfelelő adatokat ugyanazon Goods.db és sikeresen módosító ApplyUpdates végre, ezáltal tett ez a funkció változások kerülnek rögzítésre Goods.db.

Kód, mint korrektry. Hányszor már tesztelték a munkát -, de soha nem adta hibák. de néha ügyfél panaszkodik. Végezzük el a következő egy dokumentumot néhány tíz áruk - munkák hiba nélkül. Azonban a nevét az áru az adatbázisban tárolt nem kerülnek mentésre. A legrosszabb dolog az, hogy CreatePrihodDoc () szubrutin kell írni a szükséges információkat az érkezési és más tablettát. Mivel az összes információ tárolása tablettát, de Goods.db - nifiga. Mert én nem találom. Az ügyfél végezhet száz plébániák normálisan, majd lehet fogni ezt a hibát (mivel általában szükség van, hogy távolítsa el az „extra” információt az adatbázisból, amely bizonyos esetekben nem könnyű).

Lehet, hogy valaki szembe ilyen viselkedést BDE. Nos FIC ismerem őt, akkor lehet gondolni, és hogy egy ilyen hibakereső :( Talán után Goods.ApplyUpdates érdemes hozzátéve Goods.CommitUpdates, de kétlem, hogy ez segít megoldani a problémát, tudom, hogy a BDE -. Atstoy, de még egy váratlan és valahogy meg kell kijutni.

Egyszer ugyanazt a hibát volt furcsa eset:
Áruk tette az áruk megérkezése. Továbbá, majdnem két napig végeztük ezt a terméket eladó. Ezt követően kiderült, hogy ez a termék az Goods.db nem, és nem létezik. Kiváló esemény, de sajnos - igazi: ((

# XA0; # XA0; # XA0; összekötő táblázat szállítmányok (és 4 asztal)>

# XA0; Goods.ApplyUpdates; // Mentse a változtatásokat, hogy az adatbázis
végül
néhány kivételtől eltekintve csúszott.

Mivel a hiba napló és fenntartani. És mivel látható, hogy nincsenek kivételek történtek.

Tehát paradoxon, vagy nem?

> Joining asztal szállítmányok (és 4 asztal)>
és volshkbnye 255 változások egyetlen tranzakció nem prevysmt távolságig öt asztal?

> A volshkbnye 255 változások egyetlen tranzakció nem
> Prevysmt vámkezelés öt asztal?

Vannak korlátozások a 255 megváltozik minden asztalnál.
Ebben az esetben van egy kivétel „Túl sok eredmény zár az asztalra.”
Ez a helyzet vezérli az ügyfél. Bár, ha van még olyan - ne aggódj, mert a tranzakciót visszaállítják törli a változásokat. De ebben az esetben ez a helyzet nem áll fenn. Az egyik egyházközség általában több mint 20 árukat nem bocsátják ki. Tehát, hogy nem hiba ebben.

Végül, az adatok megsértése okozta a hibát talált. Beletelt egy év munka BDE + Paradox, hogy fellelhetjük kellemetlen szolgáltatás: ha egy adott táblázatban adatbázis több kapcsolat (TTable vagy TQuery a RequestLive = True), akkor a felvétel tényleges változások a táblázatban * .db elég egyszer zárva lesz ALL vegyületet (amely nem függ ApplyUpdates). És Isten ments, legalább egy programot, akkor is, ha ez csak használ TTable megjelenítéséhez nyilvántartások, le fog állni „illegális”, minden változtatás történt tetszőleges számú program az adatbázis tábla elvész, és lehet, hogy nap, és két hét munka.
Sooooo bosszantó tulajdonság, amit mondok. (

Számos különböző volt több mint 8 éve dolgozik egy paradoxon. Mivel azonban poverturbo. De az ilyen.

Csodálatosak a te dolgaid, az Úr, és azt szeretné, hogy hozzanak létre BDE?

Talán. A legfontosabb dolog -, hogy vigyázzon az a hiba okát. Továbbra is, hogy tegyenek intézkedéseket tovább a „megelőzés”.

Akkor, de nem szükséges ugyanabban a konfigurációban, amelyek feladata ebben és dolgoznak nem mindegy, hogy DbiSaveChanges okozta-e vagy sem.

Memória: 0,75 MB
Idő: 0.047 c

Kapcsolódó cikkek