|
A TField osztály közvetlen leszármazottjai: TStringField, TnumericField, TBoolean, TDateTimeField
TStringField = class(TField)
Az adatkészlet string típusú mezője.
AsBoolean
A mező tartalmának logikai értékét kaphatjuk meg ezzel. Ez igaz, ha a mező tartalmának első karaktere valamilyen igaz értékre utal. Ilyen pl. ha az első karakter y, Y, t, T - a yes és a true szóból. A mező értékének igazra állítása esetén a mező tartalma T, hamisra állítása esetén F lesz.
AsDateTime
AsFloat
AsInteger
Ezeknek a property-knek az olvasása és írása egyszerű konvertálást hajt végre a típusnak megfelelő Delphi függvénnyel. Például dátum esetén a StrToDateTime, ill. DateTimeToStr függvények, lebegőpontos szám esetén StrToFloat ill. FloatToStr segítségével.
Value
AsString
Transliterate
A mező értékének eredeti formáját adja vissza vagy írja. Itt nincs szükség konvertálásra, legfeljebb ha a Transliterate property értéke igaz. Ilyenkor ezeknek a property-knek az olvasása és írása a NativeToAnsi és AnsiToNative függvények segítségével konvertálódik. Erre akkor van szükség, ha a fizikai adatbázis nem támogatja az ANSI karakterkészletet és a mező értékében előfordulhatnak kiterjesztett ASCII karakterek.
FixedChar
Ez a logikai tulajdonság igaz, ha a mező fizikai adatbázisbeli típusa Char. Hamis, ha VarChar.
TNumericField = class(TField)
Az összes számmező szülőosztálya. Két saját tulajdonsága a DisplayFormat és az EditFormat. Ezek szokványos formázó karaktersorok.
A DisplayFormat az adatfüggő vezérlőben megjelenő szám formázását, az EditFormat pedig ugyanennek a számnak a szerkesztés közbeni formáját határozza meg.
Leszármazottjai: TIntegerField, TLargeIntField, TFloatField, TBCDField
TIntegerField = class(TNumericField)
Az egész típusú mezők szülőosztálya (kivéve a TLargeintField). Ez az osztály 32 bites egész számok tárolására használható.
MaxValue
MinValue
A mező által elfogadható értékek korlátozására szolgál. Ha a megadott érték kisebb, mint a MinValue, vagy nagyobb, mint a MaxValue, akkor EDatabaseError kivétel keletkezik. Ez az ellenőrzés minden értékadásnál lezajlik.
Value
AsInteger
Ez a két tulajdonság megegyezik. A mező értékét integer típusúan írhatjuk, olvashatjuk.
AsString
String típusú értékadásra, olvasásra használható. Ha az átadott érték nem alakítható át egész típusú számmá, EDatabaseError keletkezik.
AsFloat
Ezzel a property-vel lehet lebegőpontos számokat értékül adni a mezőnek. Ilyenkor a lebegőpontos szám kerekítve lesz tárolva.
DataSize
Ez mindig 4, kivéve a kisebb egész számok tárolására alkalmas mezők esetében, pl.: TSmallIntField.
Leszármazottjai: TSmallintField, TWordField, TAutoIncField.
TSmallIntField = class(TIntegerField)
TWordField = class(TIntegerField)
Ennek a két osztálynak nincs saját tulajdonsága. Csak annyiban térnek el szülőosztályuktól, hogy a TSmallIntField csak 16 bites, a TWordField pedig 16 bites, pozitív számokat tud tárolni, ezért mindkét osztálynak az egyedeire a DataSize property 2.
TAutoIncField = class(TIntegerField). Ez az osztály semmilyen új tulajdonsággal nem rendelkezik. Ugyanúgy 32 bites egész számokat tárol. Ezt a mezőtípust szokták elsődleges kulcsként használni táblákban.
TLargeintField = class(TNumericField)
Ez az osztály csak annyiban különbözik a TIntegerFieldtől, hogy ez 8 bájton (64 biten) tud tárolni egész számokat. Ugyanúgy rendelkezik MinValue, MaxValue, stb. property-vel. Amiben különbözik:
AsInteger
Ennek az olvasásánál longint-integer, írásánál integer-longint konvertálás történik, így integer típusú változók értéke is tárolható a mezőben.
AsLongInt
Value
LongInt típusú értékadás, olvasás.
DataSize
Ennek értéke 8.
TFloatField = class(TNumericField)
Lebegőpontos számok tárolására alkalmas mezőosztály, a TCurrencyField közvetlen szülője. Ennek az osztálynak a tulajdonságai alkalmasak a lebegőpontos számok kezelésére, formázására, konvertálására.
Tulajdonságai:
AsFloat
Value
Lebegőpontos érték írására, olvasására használható tulajdonságok.
AsInteger
A lebegőpontos szám konvertálása egész típusúvá a törtérték elhagyásával.
AsString
A mező tartalmának string típusú változata, ha írásnál nem alakítható a string típusú változó lebegőpontos számmá, kivétel keletkezik (EDatabaseError).
Currency
Logikai érték, ami azt határozza meg, hogy pénznemként jelenítse-e meg a mezőben tárolt értéket.
DataSize
Ennek értéke mindig 8.
MaxValue
MinValue
A TIntegerFieldnél bemutatott tulajdonságokhoz hasonló, de lebegőpontos számok használhatók az elfogadható értékek korlátozására.
Precision
A lebegőpontos szám precizitását ezzel lehet megadni. Ez egy egész szám, ami azt fejezi ki, hogy a tizedesvessző után hány számjegynyi értéket mutasson a mező pontosan. Az ez utáni számjegyek már csak kerekítve jelennek meg. Ez a szám minimum 2.
Leszármazottja: TCurrencyField = class(TFloatField). Ez csak a DataType property-ben különbözik szülőjétől, ez ennek a mezőtípusnak ftCurrency. Ez azt is jelenti, hogy alapesetben az általa tárolt szám pénzként jelenik meg (Currency=true). Ez a mezőtípus a fizikai adatforrásoknak megfelelően double típusúan jeleníti meg a lebegőpontos számot.
TBCDField = class(TNumericField)
Binárisan kódolt decimális (Binary Coded Decimal) értékek tárolására szolgáló mező. Az ilyen adattípusnak nagyobb a pontossága és precizitása, mint a lebegőpontos mezőknek. Mivel a Delphinek nincs a BCD típusú adatok kezeléséhez megfelelő adattípusa, ezért Currency típust használ ilyen célra. A BCD tízes alapú, a Currency pedig kettesalapú, ezért annak pontossága be van határolva 4 decimális és 20 szignifikáns számjegyre. Ha a fizikai adatbázis ennél nagyobb pontosságot igényelne, kivétel keletkezik.
Ugyanúgy rendelkezik az összes tulajdonsággal, amivel a TCurrencyField. Az egyetlen eltérés, hogy a precizitása nagyobb: 0 és 32 közötti lehet.
TBooleanField = class(TField)
Az adatbázis logikai értékének megjelenítésére, írására szolgál. Általa van lehetőség a logikai értékek legkülönbözőbb értelmezésére.
AsBoolean
Value
Az adatbázisok a logikai értékeket általában WordBool típusú értékként tárolják, ezért ennek mérete (DataSize) mindig 2. Ennek a property-nek az olvasása, írása WordBool-Boolean átalakítást végez.
AsString
DisplayValues
A DisplayValues property-vel lehet a logikai értékekhez más értéket rendelni. Ez hatással van az AsString olvasására, írására. Ha nincs megadva a DisplayValues, akkor az AsString értéke TRUE, vagy FALSE lehet. Ha meg van adva, akkor az AsString property csak ezekre az értékekre változtatható. Minden más érték átadása kivételt okoz.
A DisplayValue értéke két pontosvesszővel elválasztott (az első az igaz a második a hamis értékhez rendelt) kifejezés, szó, stb. lehet, pl.: Igaz;Hamis. Lehetőség van csak az egyik logikai értékhez rendelt szöveg megadására. Ebben az esetben csak a megadott érték jelenik meg.
TDateTimeField = class(TField)
Kombinát idő-dátum érték (timestamp) tárolására alkalmas mező. Saját property-jei jól használhatóak a dátum és idő értékek kívánt típusúvá, formájúvá alakítására.
Tulajdonságai:
AsDateTime
Value
A mező értéke TDateTime típusú értékadására, olvasására használható.
AsString
DisplayFormat
A DisplayFormat property-vel adható meg a Windows által beállított dátumformázástól eltérő forma. Ez egy szokványos dátumformázó karaktersor, ami meghatározza a mező értékének az adatfüggő vezérlőkben való megjelenését. Ha ez nincs megadva, akkor az AsString property a Windows által meghatározott formában adja vissza a dátum/idő értéket, és ugyanilyen formában lehet írni azt. Ha meg van adva, akkor a megadott formában várja a Delphi a dátumot/időt, és így is adja vissza. Ilyenkor DateTimeToStr, ill. StrToDateTime függvényekkel konvertálja a dátumot és időt string típusúvá.
AsFloat
A dátum és idő értékét lebegőpontos számként adja vissza, ill. így írható. Ennek a számnak az egész része az 1899. december 30. óta eltelt napok számát adja. A törtrész pedig a nap eltelt hányadát.
DataSize
A tárolt adat mérete mindig 8 bájt.
Leszármazottjai: TDateField, TTimeField. Ezek annyiban különböznek szülőjüktől, hogy TDateField esetén csak a dátumot (napok számát), TTimeField esetén pedig csak az időt (a nap eltelt hányadát) tárolják 4 bájtban (DataSize=4).
TBinaryField = class(TField)
Típus nélküli bináris adatok tárolására alkalmas mezőosztály.
Tulajdonságai:
AsString
Mivel egy stringben nem csak szöveges adatok tárolhatók, lehetőség van ilyen típusú értékadásra, olvasásra. Ha a string hosszabb, mint a mező tartalma (DataSize), akkor csonkítva lesz tárolva.
AsVariant
Value
Az AsVariant ugyanaz az érték, mint a Value. Ezek a mező tartalmát variant bájttömbben tárolják és így is írhatók.
Leszármazottja: TBytesField=class(TBinaryField).
A TBytesField fix hosszúságú formázatlan bájtsor tárolására alkalmas. Ennek DataSize property-je egyenlő a tárolt bájtok számával (azaz a Size property értékével).
Leszármazottja: TVarBytesField=class(TBytesField)
A TVarBytesField változó hosszúságú bájtsort képes tárolni. Ennek mérete a tárolt bájtok számával + 2-vel egyenlő, mivel az első két bájton tárolja a mező aktuális méretét.
TBlobField = class(TField)
A BLOB (Binary Large Object) mezők csak a mező tartalmára vonatkozó hivatkozásokat tartalmaznak. A tartalom az adatbázisban külön van tárolva. Ezért ennek kezelésére a TBlobField-nek saját metódusai vannak.
Metódusai:
LoadFromFile
LoadFromStream
A mező tartalmának feltöltése fájlból (LoadFromFile(fájlnév)), adatfolyamból (stream) (LoadFromStream(folyamnév)).
SaveToFile
SaveToStream
A mező tartalmának elmentése fájlba (SaveToFile(fájlnév)), adatfolyamba (SaveToStream(folyamnév)).
Tulajdonságai:
AsString
Value
Ezzel írhatóak a szöveges tartalmú BLOB-ok, de használható bináris adatok írására is, ha az átadott string azt tartalmazza. A Value a BLOB-ok esetében egyenlő az AsString property-vel.
BlobSize
A BLOB méretének meghatározására nem használható a DataSize property, mert ennek értéke 0. E helyett használható a BlobSize, ami a BLOB tényleges méretét adja meg bájtokban. Ez a property csak az aktuális rekordra vonatkozik (a DataSize bármelyikre).
BlobType
A BLOB típusát meghatározza a benne tárolt adat. A típusa lehet:
ftBlob Binary Large Object mező
ftMemo Memo mező
ftGraphic bittérkép mező
ftFmtMemo formázott memo mező
ftParadoxOle Paradox OLE mező
ftDBaseOle dBase OLE mező
ftTypedBinary típusos bináris mező
Modified
Ha a BLOB értékét nem a tulajdonságaival változtatjuk meg, hanem BDE API hívásokkal, akkor szükséges ennek tudatása a BDE-vel. Ennek hatására mennek csak végbe a szükséges események.
Transliterate
Hasonlóan a TStringFieldhez, azt határozza meg, hogy szükséges-e konvertálni a mező tartalmát ANSI karakterekről az adatbázis által meghatározott formára.
Leszármazottjai: TMemoField, TGraphicField. Ezeknek nincs további saját tulajdonságuk. A TMemoField szöveges adatok, a TGraphicField pedig bináris bittérkép tárolására alkalmas.
TObjectField = class(TField)
Az összes objektummező közös őse. Ezekhez használható a TField osztály ParentField, valamint FullName tulajdonsága. A ParentFielddel lehet egy objektumon belüli mezőn keresztül elérni annak szülőmezőjét. Ha ez nem létezik, a ParentField értéke nil lesz. A FullName pedig a mező teljes neve, ami tartalmazza a szülőmező nevét is. Ha nincs szülőmezője, akkor a FieldName tulajdonság értékét veszi fel.
AsString
Használatával az objektum gyerekmezőit lehet olvasni. Ez egy vesszővel elválasztott lista. Írni nem lehet. Ilyenkor kivétel keletkezik.
FieldCount
A gyerekmezők számát adja meg.
Fields
A gyerekmezők tömbje.
FieldValues
A gyerekmezők értékének variant típusú elérését biztosítja, ezért lassabb, mint a Fields tömbön keresztül való, AsX tulajdonságokkal történő elérés.
Value
Ezzel a property-vel az objektum mezőit tömbként érhetjük el.
ObjectType
Ez az objektum Oracle besorolását adja meg.
UnNamed
Azt mutatja, hogy a beágyazott táblának van-e neve.
Leszármazottai: TADTField, TArrayField, TDataSetField
TADTField = class(TObjectField)
Ez egy absztrakt adattípust ábrázoló, egyedi felépítésű, szerveroldalon megvalósított mező. A Size-on kívül nincsenek saját tulajdonságai. A Size a TADTField-ben tárolt összes mező számát adja meg.
TArrayField = class(TObjectField)
Ez egy tömbmezőt megvalósító mező, amely csak egyforma mezőket tartalmazhat (tömböket nem). Ugyanúgy, ahogy a TADTField-nek, nincs a Size-on kívül saját tulajdonsága. A Size itt a tömb összes elemét jelenti.
TDataSetField = class(TObjectField)
Ez az osztály a beágyazott adatkészletekhez nyújt hozzáférést.
Tulajdonságai:
Fields
A beágyazott adatkészlet mezői érhetőek el ezzel.
IncludeObjectField
Ez egy logikai érték, ami meghatározza, hogy a beágyazott adatkészlet objektummezőjének létrehozható-e állandó mező.
NestedDataSet
Általa elérhető a beágyazott adatkészlet.
Leszármazottja: TReferenceField.
TReferenceField = class(TDataSetField)
Ezek olyan mező objektumok, melyek hivatkozásokat (mutatókat) tárolnak, melyek utalhatnak bármely állandó objektumra. Ezeknek adatbázisbeli megvalósítása a REF típusú mező.
AsVariant
Bájttömbként írható, olvasható a mező tartalma.
TAggregateField = class(TField)
Ez az osztály az összesítésmezők (aggregátum) osztálya a kliensoldali adatkészletekben.
Tulajdonságai:
Active
Logikai érték, ami meghatározza, hogy a mező értéke számítandó-e.
Expression
Az itt megadott képlet szerint történik a mező értékének számítása. Itt használható bármely mező neve, matematikai formula, valamint a Sum, Avg, Count, Min, Max függvények bármelyike.
GroupingLevel
IndexName
A GroupingLevel azt határozza meg, hogy az összesítés az összes rekordra (ilyenkor GroupingLevel=0), vagy csak egy részére vonatkozzon-e. Az ilyen részeket a TClientDataSet IndexName tulajdonságával lehet megadni. Csak az olyan rekordokat összesíti, amelyeknek az IndexName tulajdonságában megadott értéke egyenlő a mezőével.
ResultType
Az összesítés mezőtípusát adja meg.
|