Database field type/fr
│
English (en) │
español (es) │
français (fr) │
日本語 (ja) │
中文(中国大陆) (zh_CN) │
Vue d'ensemble
Les champs de base de données FCL-DB peuvent avoir différents types de données. Dans les datasets, un sous-ensemble de ces types est disponible. Les types pris en charge diffèrent selon le type de dataset.
Types
Actuellement, Les types de champ suivant sont définis : Voir Documentation sur le type de champ de la FCL. A faire : Ajouter l'information sur l'affectation, (p.exe. pouvez-vous utiliser .AsString) et des information supplémentaires au dessous.
Type de champ | Description |
---|---|
ftADT | |
ftArray | Représente un type de donnée Array de Interbase 6/Firebird (tableau de simple type de donnée comme varchar ou integer). Toutefois, SQLDB ne prends pas en charge le type de donnée Array actuellement. |
ftAutoInc | Un champ entier avec incrémentation automatique. |
ftBCD | Une valeur en Décimal codé binaire (BCD). |
ftBlob | Un objet binaire large (BLOB), destiné à stocker des données binaires arbitraires. |
ftBoolean | Une valeur binaire (True/False). |
ftBytes | Un nombre fixé d'octets stockés tels quels. La propriété Size doit être définie pour fonctionner. |
ftCurrency | Un format pour précisément stocker des valeurs monétaires. |
ftCursor | |
ftDataSet | Sans doute destiné à stocker un DataSet entier (peut-être pour implémenter une table maître/détail). |
ftDate | Une date sans information d'heure. |
ftDateTime | Information date et heure. |
ftDBaseOle | Probablement destiné à stocker des objets OLE dans les bases de données DBase. La propriété Size doit être définie pour fonctionner. |
ftFMTBcd | Une forme de champ numérique Décimal codé binaire (BCD). La propriété Size doit être définie pour fonctionner. |
ftFixedChar | Un champ caractères en taille fixe, semblable au type Pascal ShortString. La propriété Size doit être définie pour fonctionner. |
ftFixedWideChar | a fixed width multibyte character field. Needs to have its Size property set to work. |
ftFloat | Un type numérique en virgule flottante. |
ftFmtMemo | Mémo formatté (spécifique Paradox). La propriété Size doit être définie pour fonctionner. |
ftGraphic | Pour stocker une image. La propriété Size doit être définie pour fonctionner. |
ftGuid | Un champ pour stocker un identificateur global unique (GUID, Globally Unique Identifier). Dans le code actuel, la taille de ce champ doit être mise à 38. |
ftIDispatch | |
ftInteger | Pour des valeurs entières. |
ftInterface | |
ftLargeint | Un entier de plus grande taille avec une étendue plus large aussi. |
ftMemo | Stocke une chaîne/un texte en taille variable, ne demande pas à ce que la propriété Size soit définie. |
ftOraBlob | Probablement pour stocker des BLOB Oracle. |
ftOraClob | Probablement pour stocker des CLOB Oracle : un type de données Oracle qui peut tenir jusqu'à 4 Go de donnée [1] |
ftParadoxOle | Probablement pour destiné à contenir des objets OLE dans une base de données Paradox. |
ftReference | |
ftSmallint | Un type entier de plus petite taille que ftInteger. |
ftString | Stocke de la donnée chaîne ; la propriété Size doit être définie en précisant le nombre maximal de caractères possibles dans le champ. |
ftTime | Stocke de la donnée horaire seulement. |
ftTimeStamp | Stocke de la donnée date/heure. Sans doute équivalent. |
ftTypedBinary | Une forme de champ comme blob ? |
ftUnknown | |
ftVarBytes | Probablement destiné à enregistrer de la donnée Variant en taille variable. |
ftVariant | Probablement destiné à enregistrer de la donnée Variant. |
ftWideMemo | Un mémo avec des caractères de type widestring (UTF16). |
ftWideString | Un champ ftString avec des caractères de type widestring (UTF16). |
ftWord | Probablement pour stocker un valeur entière. |
Remarque : Un certain nombre de ces types de champ provient du monde Paradox et n'ont pas d'équivalent dans d'autres bases. Delphi les proposait à l'origine du fait de sa forte relation aux BDE.
Size, DataSize et Unicode
Reamrquez que pour les champs de type chaîne, la propriété Size indique le nombre de caractères qui peuvent être enregistrés. Comme indiqué dans FPC Unicode support/fr#Introduction, FPC jusqu'à la version 2.6 incluse, traite avec des chaînes de caractères simples ANSI/ASCII ; il ne supporte pas les caractères Unicode/UTF8/UTF16/Unicodestring.
La propriété DataSize en lecture seule indique la taille du champ en octets.
Si vous utilisez des caractères à octets multiples (multibyte characters, p.ex. encodés en UTF8 ou UTF16/Unicodestring), DataSize et Size ne signifie pas la même chose. Si vous utilisez des caractères ANSI/ASCII, DataSize et Size signifie la même chose.
Définition des types dans votre DataSet
A faire : ecrivez-moi. Expliquer les diverses façons de faire des choses (TFieldDef, TFields) et quel DataSet supporte quelle méthodes.
Affectation et récupération de valeurs
Une fois que vous avez défini les champs dans votre DataSet, vous pouvez affecter et récupérer de la donnée de cette façon - supposons que vous avez un DataSet appelé FTestDataset :
FTestDataset.Open; //Open for viewing/editing/inserting
FTestDataset.Append;
FTestDataset.Fieldbyname('YourFieldName').Asstring := 'This is my field data'; //Suppose field YourFieldName is a memo field
FTestDataset.Post; //"Commit"/save changes in the record to the dataset.
writeln('YourFieldName has data:' + FTestDataset.Fieldbyname('YourFieldName').Asstring
{ Retrieve the field value of the current record. Because we haven't moved the record, we should get what we just entered }
Pour les champs texte/mémo, utilisez la méthode AsString. Pour les champs date/heure, utilisez la méthode AsDateTime.