Difference between revisions of "Database field type/fr"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{Database field type}} = 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...")
 
m (Fixed syntax highlighting)
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{Database field type}}
 
{{Database field type}}
 +
{{Infobox databases/fr}}
  
= Vue d'ensemble =
+
== 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.
 
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 =
+
== Types ==
 
Actuellement, Les types de champ suivant sont définis :
 
Actuellement, Les types de champ suivant sont définis :
 
Voir [http://lazarus-ccr.sourceforge.net/docs/fcl/db/tfieldtype.html Documentation sur le type de champ de la FCL].
 
Voir [http://lazarus-ccr.sourceforge.net/docs/fcl/db/tfieldtype.html Documentation sur le type de champ de la FCL].
Line 40: Line 41:
 
| ftFMTBcd || Une forme de champ numérique Décimal codé binaire (BCD). 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.
+
| 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.
 
| ftFixedWideChar || a fixed width multibyte character field. Needs to have its Size property set to work.
 
|-
 
|-
| ftFloat || a floating point numeric type.
+
| 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.
 
| ftFmtMemo || Mémo formatté (spécifique Paradox). La propriété Size doit être définie pour fonctionner.
Line 94: Line 95:
  
 
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.
 
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.  
+
== 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.
  
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.
+
La propriété DataSize en lecture seule indique la taille du champ en octets.
  
= Définition des types dans votre DataSet =
+
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.
''Todo: write me. Explain various ways of doing things (TFieldDef, TFields) and which dataset supports which methods.''
 
  
= Affectation et récupération de valeurs =
+
== Définition des types dans votre DataSet ==
Once you have the fields in your dataset defined, you can assign and retrieve data like this - suppose you have a dataset called FTestDataset:
+
''A faire : ecrivez-moi. Expliquer les diverses façons de faire des choses (TFieldDef, TFields) et quel DataSet supporte quelle méthodes.''
<syntaxhighlight>
+
 
 +
== 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 :
 +
 
 +
<syntaxhighlight lang=pascal>
 
   FTestDataset.Open; //Open for viewing/editing/inserting
 
   FTestDataset.Open; //Open for viewing/editing/inserting
 
   FTestDataset.Append;
 
   FTestDataset.Append;
Line 116: Line 118:
 
   { Retrieve the field value of the current record. Because we haven't moved the record, we should get what we just entered }
 
   { Retrieve the field value of the current record. Because we haven't moved the record, we should get what we just entered }
 
</syntaxhighlight>
 
</syntaxhighlight>
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''
 
  
=Voir aussi=
+
Pour les champs texte/mémo, utilisez la méthode AsString.
 +
Pour les champs date/heure, utilisez la méthode AsDateTime.
 +
 
 +
==Voir aussi==
 
* [[Databases/fr|Bases de données]]
 
* [[Databases/fr|Bases de données]]

Latest revision as of 07:24, 12 February 2020

English (en) español (es) français (fr) 日本語 (ja) 中文(中国大陆)‎ (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