mistrovstvi v delphi 6 cz - 210
H odnoty v datových sloupcích
V D e l p h i je přístup k h o d n o t ě pole z á z n a m u (sloupce v aktuálním z á z n a m u ) v e l m i snad ný. Třída TDataSet poskytuje kolekci FieldVal u e s [ ] . Je to vlastnost typu V a r i a n t . V z h l e d e m k t o m u , že F i e l d V a l u e s f ] je implicitní vlastností objektu, nemusíte při přístupu k j e j í m h o d n o t á m uvádět její název. Podívejte se na následující příklad. P o k u s í m e se v n ě m d o řetězce S předat h o d n o t u p o l e CustName tabulky T a b l e l : S := T a b l e l f C u s t N a m e ' ] ; S tejně snadno m ů ž e m e do celočíselné p r o m ě n n é I u ložit h o d n o t u pole tabulky C u s t N o : I : = T a b l e l [ ' C u s t N o ' ];
Z t o h o vyplývá závěr, že h o d n o t y u l o ž e n é v datových sloupcích lze ukládat do kolekce t ypu Vari ant. Má to však j e d e n háček - první index kolekce m u s í mít h o d n o t u nula a j e jí položky musí být typu varVariant. Přibližme si to na elementárním příkladu: c onst AStr = ' ž s p a t ř í ke k a t e g o r i i % s a j eho d é l k a je %f.'; v ar VarArr: Variant; F: Double; b egin V arArr :-VarArrayCreateí [ 0 , 2], v a r V a r i a n t ) ; 1 P ředpokládejme, že datová sada T a b l e l je p ř i p o j e n a k t a b u l c e B i o l i f e . V arArr :- Tablel['Common_Name;Category:Length_In']; F : = VarArr[2]; S howMessage(Format(AStr, [VarArr[0], V a r A r r l l L F ] ) ) : end;
]
P ro přístup k j e d n o t l i v ý m objektům typu TField přidruženým k datové sadě můžete p o užít vlastnost TDataSet. F i e l d [ ] n e b o m e t o d u Fi el dsByName(). K o m p o n e n t a T F i e l d p o skytuje informace o j e d n o t l i v é m datovém sloupci. K olekce F i e l d s [ ] je pole objektů t y p u TField, j e h o ž první index se rovná nule. Hodno ta Fi el ds [OJ pak vrací objekt typu TField, j e n ž odpovídá p r v n í m u l o g i c k é m u datovému s loupci. Metoda FieldsByNamet) přijímá řetězcový argument, který odpovídá n á z v u dato v é h o sloupce v podkladové tabulce. Z t o h o vyplývá, že výraz FieldsByNamef'OrderNo') v rátí instanci k o m p o n e n t y TField, která zastupuje h o d n o t u sloupce O r d e r N o v a ktuálním z á z n a m u datové sady. J akmile máte k dispozici instanci k o m p o n e n t y TField, můžete m a n i p u l o v a t s h o d n o t o u s l o u p c e v aktuálním z á z n a m u p o m o c í následujících vlastností třídy TField (viz tabulka 6.2).
Tabulka 6.2: Vlastnost
A sBoolean A sFIoat A sInteger A sString AsDateTime V alue
Vlastnosti
třídy
T F i e l d pro
přístup
k hodnotě sloupce v aktuálním záznamu.
Návratový typ
Boolean Double Longi nt String TDateTime V ariant
- Pro možnost psaní komentářů se přihlašte nebo zaregistrujte.


































































