Database field type/fr

From Free Pascal wiki
Jump to navigationJump to search

English (en) español (es) français (fr) 中文(中国大陆)‎ (zh_CN)

Portail de la base de données

Références:

Tutoriels/articles pratiques :

Bases de données

Advantage - MySQL - MSSQL - Postgres - Interbase - Firebird - Oracle - ODBC - Paradox - SQLite - dBASE - MS Access - Zeos

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.

Voir aussi