32 órákat delphi
-
32 Delphi lecke
24. lecke: ügyvezető Transactions
Minden műveletet az adatokat az SQL szerver, keretében jelennek meg a tranzakció. Tranzakció - ez egy csoport műveletet, azaz a egy sor intézkedést az adatbázishoz; A legjelentősebb ezek az intézkedések általában az összes vagy egyik sem. Ha a végrehajtás során egy adott sor intézkedést, egy bizonyos szakaszában, lehetetlen, hogy készítsen egy másik akció, akkor végre kell hajtani a visszatérés az adatbázist a kezdeti állapot (visszaállíthatja a tranzakció). Így (a megfelelő tervezés ügyletek), feltéve, hogy az adatbázis integritását. Ez a lecke bemutatja, hogyan kell kezdeni, kezelni és lezárni a tranzakciót segítségével SQL. És szintén tárgyalják a tranzakciók alkalmazások által létrehozott Delphi. Minden megadott tájékoztatás InterBase.
Mert tranzakció kezelés, három kifejezést:
SET ÜGYLETI - Kezdjük egy tranzakciót, és határozza meg a működését.
Kötele- menti a változtatásokat az ügylet által az adatbázisban, és befejezi a tranzakciót.
ROLLBACK - Elveti a változásokat, amelyeket a tranzakciót, és befejezi a tranzakciót.
SET-művelet [Access mód] [Lock Resolution]
[Izolálása Level] [Asztalfoglalás]
A feljegyzett értékeket az alapértelmezett.
SET ÜGYLETI olvasni írni WAIT izolációs szint PILLANATKÉP
SET ÜGYLETI olvasni írni
Explicit tranzakció - az ügylet kezdeményezett és befejezett módszerekkel adatbázis-objektum: StartTransaction, Commit, RollBack. A rajt után a kifejezett tranzakció minden változás történt a kapcsolódó adatok ezt a tranzakciót.
Más módon is kifejezett ügyleti használata helyett egy adatbázisban. sz. (Pontosabban, ez lehetséges, de szükség lenne igénybe API InterBase függvények. Azonban ez már nagyon alacsony szintű programozási.) Így az egyetlen vegyület nem indítható két ügylet.
Implicit tranzakciós kezdődik adatmódosítás, ha abban a pillanatban nincs kifejezett tranzakciót. Implicit tranzakció történik például akkor, ha olyan munkát végez Hozzászólás eljárás tábla és lekérdezés tárgyakat. Azaz, ha szerkeszteni egy bejegyzést DBGrid és menjen egy másik rekordot, ez azzal jár teljesítő Post. ami viszont az, hogy a tetején egy implicit tranzakciós adatok egy ügyletet és frissítését annak befejezését. Fontos megjegyezni, hogy az implicit tranzakció által kezdett POST metódussal, Törlés, Insert, hozzáfűzése, stb Ez automatikusan befejeződik.
A módosító adatokat lehet használni áteresztés SQL- SQL- expresszió által végrehajtott módszerrel ExecSQL osztály TQuery. Módosítások keresztül átjelentkezési SQL is vezet a kezdetektől az implicit tranzakció. Az ezt követő viselkedés ügyletek indult ilyen módon meghatározott SQLPASSTHRU MODE paraméter értéke alias adatbázis (vagy ugyanaz a paraméter a kommunikáció negatív Params adatbázis-objektum). Ez a paraméter vehet három érték.- KÖZÖS AUTOCOMMIT - szó KÖZÖS azt jelzi, hogy mindkét típusú tranzakciók (a Átjárható SQL keresztül TTable és TQuery módszerek) ugyanazt az adatbázis kapcsolat. AUTOCOMMIT szó jelzi, hogy az implicit tranzakció keresztül kezdeményezett Átjárható SQL. befejezése után az intézkedés módosításának adatok (automatikusan végrehajtásra COMMIT).
- KÖZÖS NOAUTOCOMMIT - annyiban különbözik az előzőtől, hogy az implicit tranzakció keresztül kezdeményezett Átjárható SQL. nem ér véget ezzel, akkor nyilván kell fejezni végrehajtó SQL- „kifejezés COMMIT”.
- Nincs megosztva - ügyletek különböző típusú keresztül működnek különböző adatbázis kapcsolat. Ez az érték is NOAUTOCOMMIT. Ez minden implicit PassthroughSQL -tranzaktsii kell befejezni egyértelműen - teljesítő SQL- „kifejezés COMMIT” az Passtrough SQL.
Az első esetben, ha nincs megadva indított tranzakció, a módszerek próbálja módosítási adatok TTable vagy TQuery. valamint végrehajtása révén Passtrough SQL bármely művelet vezet a kezdete az implicit tranzakció. Ha ez kész, ez a tranzakció automatikusan megtörténik (kivéve, ha hiba történt a tranzakció során). Ha már elkezdték kifejezetten (StartTransaction adatbázis objektum módszer) ügylet, a változások zajlanak a kontextusban. Minden tranzakció használja egy és ugyanazon vegyület.
A második esetben, minden úgy történik, mint az első. A különbség az, hogy az implicit PassthroughSQL- tranzakció nem fejeződött be a „COMMIT” parancs végrehajtása nem.
A harmadik eset, amikor az Átjárható SQL parancsokat. Megállapítást másik kapcsolatot, és implicit kezdeményezett tranzakció végrehajtott műveleteket adatmódosítás. A tranzakció nem kerül sor mindaddig, amíg a parancsot „COMMIT” lesz végrehajtva. A rendelkezésre álló ügyletek indult kifejezetten az adatbázis nem befolyásolja a haladást PassthroughSQL- tranzakciót. PassthroughSQL-, amíg a tranzakció befejeződött, a változások a nem lesz látható a tábla és lekérdezés tárgyakat. együttműködve a többi kapcsolatot. PassthroughSQL- ügylet tekinthető abban az értelemben, mint a tranzakció másik alkalmazás.
Kölcsönhatás ügyletek e programnak tranzakciók egyéb alkalmazások tulajdonságai határozzák meg az objektum TransIsolation tárol. InterBase két jelentése jelentése: tiReadCommitted és tiRepeatableRead. StartTransaction végrehajtási eljárás e két esetben megegyezik az SQL -vyrazheny, ill.
SET ÜGYLETI olvasni írni WAIT izolációs szint READ COMMITTED
SET ÜGYLETI olvasni írni WAIT izolációs szint PILLANATKÉP