Database field type/fr: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: Database field type/fr
| Old | New | Line | |
|---|---|---|---|
| 1 | + | ## Vue d'ensemble | |
| 2 | + | ||
| 3 | + | 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. | |
| 4 | + | ||
| 5 | + | ## Types | |
| 6 | + | ||
| 7 | + | Actuellement, Les types de champ suivant sont définis : Voir [Documentation sur le type de champ de la FCL](http://lazarus-ccr.sourceforge.net/docs/fcl/db/tfieldtype.html). A faire : Ajouter l'information sur l'affectation, (p.exe. pouvez-vous utiliser .AsString) et des information supplémentaires au dessous. | |
| 8 | + | ||
| 9 | + | | Type de champ | Description | | |
| 10 | + | |----|----| | |
| 11 | + | | ftADT | | | |
| 12 | + | | 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. | | |
| 13 | + | | ftAutoInc | Un champ entier avec incrémentation automatique. | | |
| 14 | + | | ftBCD | Une valeur en [Décimal codé binaire (BCD)](https://fr.wikipedia.org/wiki/D%C3%A9cimal_cod%C3%A9_binaire). | | |
| 15 | + | | ftBlob | Un objet binaire large (BLOB), destiné à stocker des données binaires arbitraires. | | |
| 16 | + | | ftBoolean | Une valeur binaire (True/False). | | |
| 17 | + | | ftBytes | Un nombre fixé d'octets stockés tels quels. La propriété Size doit être définie pour fonctionner. | | |
| 18 | + | | ftCurrency | Un format pour précisément stocker des valeurs monétaires. | | |
| 19 | + | | ftCursor | | | |
| 20 | + | | ftDataSet | Sans doute destiné à stocker un DataSet entier (peut-être pour implémenter une table maître/détail). | | |
| 21 | + | | ftDate | Une date sans information d'heure. | | |
| 22 | + | | ftDateTime | Information date et heure. | | |
| 23 | + | | ftDBaseOle | Probablement destiné à stocker des objets OLE dans les bases de données DBase. La propriété Size doit être définie pour fonctionner. | | |
| 24 | + | | ftFMTBcd | Une forme de champ numérique Décimal codé binaire (BCD). La propriété Size doit être définie pour fonctionner. | | |
| 25 | + | | ftFixedChar | Un champ caractères en taille fixe, semblable au type Pascal ShortString. La propriété Size doit être définie pour fonctionner. | | |
| 26 | + | | ftFixedWideChar | a fixed width multibyte character field. Needs to have its Size property set to work. | | |
| 27 | + | | ftFloat | Un type numérique en virgule flottante. | | |
| 28 | + | | ftFmtMemo | Mémo formatté (spécifique Paradox). La propriété Size doit être définie pour fonctionner. | | |
| 29 | + | | ftGraphic | Pour stocker une image. La propriété Size doit être définie pour fonctionner. | | |
| 30 | + | | 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. | | |
| 31 | + | | ftIDispatch | | | |
| 32 | + | | ftInteger | Pour des valeurs entières. | | |
| 33 | + | | ftInterface | | | |
| 34 | + | | ftLargeint | Un entier de plus grande taille avec une étendue plus large aussi. | | |
| 35 | + | | ftMemo | Stocke une chaîne/un texte en taille variable, ne demande pas à ce que la propriété Size soit définie. | | |
| 36 | + | | ftOraBlob | Probablement pour stocker des BLOB Oracle. | | |
| 37 | + | | ftOraClob | Probablement pour stocker des CLOB Oracle : un type de données Oracle qui peut tenir jusqu'à 4 Go de donnée [1](http://www.orafaq.com/wiki/CLOB) | | |
| 38 | + | | ftParadoxOle | Probablement pour destiné à contenir des objets OLE dans une base de données Paradox. | | |
| 39 | + | | ftReference | | | |
| 40 | + | | ftSmallint | Un type entier de plus petite taille que ftInteger. | | |
| 41 | + | | 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. | | |
| 42 | + | | ftTime | Stocke de la donnée horaire seulement. | | |
| 43 | + | | ftTimeStamp | Stocke de la donnée date/heure. Sans doute équivalent. | | |
| 44 | + | | ftTypedBinary | Une forme de champ comme blob ? | | |
| 45 | + | | ftUnknown | | | |
| 46 | + | | ftVarBytes | Probablement destiné à enregistrer de la donnée Variant en taille variable. | | |
| 47 | + | | ftVariant | Probablement destiné à enregistrer de la donnée Variant. | | |
| 48 | + | | ftWideMemo | Un mémo avec des caractères de type widestring (UTF16). | | |
| 49 | + | | ftWideString | Un champ ftString avec des caractères de type widestring (UTF16). | | |
| 50 | + | | ftWord | Probablement pour stocker un valeur entière. | | |
| 51 | + | ||
| 52 | + | 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. | |
| 53 | + | ||
| 54 | + | ## Size, DataSize et Unicode | |
| 55 | + | ||
| 56 | + | 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|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. | |
| 57 | + | ||
| 58 | + | La propriété DataSize en lecture seule indique la taille du champ en octets. | |
| 59 | + | ||
| 60 | + | 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. | |
| 61 | + | ||
| 62 | + | ## Définition des types dans votre DataSet | |
| 63 | + | ||
| 64 | + | *A faire : ecrivez-moi. Expliquer les diverses façons de faire des choses (TFieldDef, TFields) et quel DataSet supporte quelle méthodes.* | |
| 65 | + | ||
| 66 | + | ## Affectation et récupération de valeurs | |
| 67 | + | ||
| 68 | + | 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 : | |
| 69 | + | ||
| 70 | + | ``` pascal | |
| 71 | + | FTestDataset.Open; //Open for viewing/editing/inserting | |
| 72 | + | FTestDataset.Append; | |
| 73 | + | FTestDataset.Fieldbyname('YourFieldName').Asstring := 'This is my field data'; //Suppose field YourFieldName is a memo field | |
| 74 | + | FTestDataset.Post; //"Commit"/save changes in the record to the dataset. | |
| 75 | + | writeln('YourFieldName has data:' + FTestDataset.Fieldbyname('YourFieldName').Asstring | |
| 76 | + | { Retrieve the field value of the current record. Because we haven't moved the record, we should get what we just entered } | |
| 77 | + | ``` | |
| 78 | + | ||
| 79 | + | Pour les champs texte/mémo, utilisez la méthode AsString. Pour les champs date/heure, utilisez la méthode AsDateTime. | |
| 80 | + | ||
| 81 | + | ## Voir aussi | |
| 82 | + | ||
| 83 | + | - [[Databases/fr|Bases de données]] | |
| 84 | + | ||
| 85 | + | --- | |
| 86 | + | *From the Free Pascal wiki, page "Database field type/fr", as it stood on 2020-02-12 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
