HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Két adatbázis tábla szerkezetének összehasonlítása


Példaprogram letöltése

53680 bájt

Néha hasznos lehet, ha két, akár különböző típusú adatbázisban található tábla szerkezetét össze tudjuk hasonlítani. Ebben a cikkben egy olyan komponenst készítünk, amellyel ez könnyedén megtehető. A komponens segítségével lekérdezhető, hogy a két tábla mezői és indexei miben térnek el egymástól. A komponens bemutatásához készített példaprogram a különbségeket egy listában meg is mutatja.

A mellékelt példaprogram megnyitása előtt a TableDiff.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens használható például arra, hogy eldöntsük a megadott adatbázis tábla megnyitása előtt, hogy annak szerkezete megfelelő-e, vagy módosítani kell, például egy alkalmazás frissítésekor.
Az összehasonlítás az Execute eljárással indul, és különböző eseményeken keresztül értesülünk a két tábla különbségeiről. A két táblának létező táblának kell lennie, mivel az összehasonlítás előtt a komponens megnyitja, és beolvassa a tényleges adatokat (mező és index definíciók).
DataBase1
Osztály: TTableDifference
property DataBase1: string;
Az első tábla adatbázisának Alias neve. Nem kötelező megadni, ha a Table1 property-ben megadjuk a tábla teljes nevét az elérési útvonallal együtt.
DataBase2
Osztály: TTableDifference
property DataBase2: string;
A második tábla adatbázisának Alias neve. Nem kötelező megadni, ha a Table2 property-ben megadjuk a tábla teljes nevét az elérési útvonallal együtt.
Table1
Osztály: TTableDifference
property Table1: string;
Az első tábla neve. Ha a DataBase1 property-ben nem adjuk meg az adatbázis nevét, akkor a tábla fájl nevét kell megadni.
Table2
Osztály: TTableDifference
property Table2: string;
A második tábla neve. Ha a DataBase2 property-ben nem adjuk meg az adatbázis nevét, akkor a tábla fájl nevét kell megadni.
OnFieldDiff
Osztály: TTableDifference
property OnFieldDiff: TFieldDiffEvent;
Ez az esemény akkor fut le, ha a két tábla valamelyik mezője nem található meg a másik táblában, vagy megtalálható, de a típusa vagy a hossza nem egyezik meg. Az esemény a következőképpen néz ki:
TFieldDiffEvent = procedure(Sender: TObject; Field1, Field2: TField) of object;
A Field1 paraméterben az első tábla mezőjének objektumát kapjuk meg, a Field2-ben pedig a második tábláét. Ha valamelyik paraméter nil, akkor az azt jelenti, hogy az adott táblában a másik paraméterben megkapott mező nem létezik.
OnIndexDiff
Osztály: TTableDifference
property OnIndexDiff: TIndexDiffEvent;
Ez az esemény akkor jön létre, amikor az indexekben talált eltérést a komponens. Az esemény nagyon hasonlít az OnFieldDiff eseményhez, de itt az index mezők objektumát kapjuk meg paraméterként:
TIndexDiffEvent = procedure(Sender: TObject; Index1, Index2: TIndexDef) of object;
OnError
Osztály: TTableDifference
property OnError: TNotifyEvent;
Ha az összehasonlítás során hiba lépett fel, akkor fut le ez az esemény.

Cikksorozat

#IDKategóriaCikk címeSorozat
1018DelphiVonalkód készítő komponens1. rész
1028DelphiVonalkód nyomtatása a QuickReport-al2. rész


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