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 | a fixed width character field, similar to a 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 | a floating point numeric type. |
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.
Taille, Taille de donnée et Unicode
Note that for string type fields, Size indicates the number of characters that can be stored. As indicated in FPC Unicode support#Introduction, FPC up to and including 2.6 only deals with ANSI/ASCII single byte characters; it does not support Unicode/UTF8/UTF16/Unicodestring characters.
The read-only property DataSize indicates the field size in bytes.
If you use multibyte characters (e.g. UTF8 or UTF16/Unicodestring encoded), DataSize and Size do not mean the same thing. If you use only ANSI/ASCII characters, DataSize and Size are effectively the same thing.
Définition des types dans votre DataSet
Todo: write me. Explain various ways of doing things (TFieldDef, TFields) and which dataset supports which methods.
Affectation et récupération de valeurs
Once you have the fields in your dataset defined, you can assign and retrieve data like this - suppose you have a dataset called 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 }
For text/memo fields, use the AsString method. For date/time fields, use the AsDateTime method. For binary fields, I suppose you can use the AsString method - but there must be another way, too