Database field type/fr: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | + | --- | |
| 2 | + | [[Portal:Databases|**Portail de la base de données**]] | |
| 3 | + | Références: | |
| 4 | + | ||
| 5 | + | * [[Databases/fr|Information générale]] | |
| 6 | + | * [[Database libraries/fr|Bibliothèques]] | |
| 7 | + | * Types de champ | |
| 8 | + | * [[Data Controls tab/fr|Contrôles]] | |
| 9 | + | * [[Lazarus DB Faq/fr|FAQ]] | |
| 10 | + | * [[SqlDBHowto/fr|Comment faire en SQL ?]] | |
| 11 | + | * [[Working With TSQLQuery/fr|Travailler avec TSQLQuery]] | |
| 12 | + | * [[How to write in-memory database applications in Lazarus/FPC/fr|Applications de base de données en mémoire]] | |
| 13 | + | ||
| 14 | + | Tutoriels/articles pratiques : | |
| 15 | + | ||
| 16 | + | * [[Lazarus Database Overview/fr|Vue d'ensemble]] | |
| 17 | + | * [[SQLdb Tutorial0/fr|0 - Configuration de la base de données]] | |
| 18 | + | * [[SQLdb Tutorial1/fr|1 - Commençons]] | |
| 19 | + | * [[SQLdb Tutorial2/fr|2 - Edition]] | |
| 20 | + | * [[SQLdb Tutorial3/fr|3 - Requêtes]] | |
| 21 | + | * [[SQLdb Tutorial4/fr|4 - Modules de données]] | |
| 22 | + | * [[SQLdb Programming Reference/fr|Référence de programmation SQLdb]] | |
| 23 | + | ||
| 24 | + | Bases de données | |
| 25 | + | ||
| 26 | + | [[Advantage Database Server/fr|Advantage]] \- [[MySQLDatabases/fr|MySQL]] \- [[mssqlconn/fr|MSSQL]] \- [[postgres/fr|Postgres]] \- [[Firebird/fr|Interbase]] \- [[Firebird/fr|Firebird]] \- [[Oracle/fr|Oracle]] \- [[ODBCConn/fr|ODBC]] \- [[TParadox/fr|Paradox]] \- [[SQLite/fr|SQLite]] \- [[Lazarus Tdbf Tutorial/fr|dBASE]] \- [[MS Access/fr|MS Access]] \- [[Zeos tutorial/fr|Zeos]] | |
| 27 | + | ||
| 28 | + | ## Contents | |
| 29 | + | ||
| 30 | + | * 1 Vue d'ensemble | |
| 31 | + | * 2 Types | |
| 32 | + | * 3 Size, DataSize et Unicode | |
| 33 | + | * 4 Définition des types dans votre DataSet | |
| 34 | + | * 5 Affectation et récupération de valeurs | |
| 35 | + | * 6 Voir aussi | |
| 36 | + | ||
| 1 | 37 | ## Vue d'ensemble | |
| 2 | 38 | ||
| 3 | - | ||
| 39 | + | 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 | 40 | ||
| 5 | 41 | ## Types | |
| 6 | 42 | ||
| 7 | - | ||
| 8 | - | ||
| 9 | - | ||
| 10 | - | ||
| 11 | - | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - | ||
| 15 | - | ||
| 16 | - | ||
| 17 | - | ||
| 18 | - | ||
| 19 | - | ||
| 20 | - | ||
| 21 | - | ||
| 22 | - | ||
| 23 | - | ||
| 24 | - | ||
| 25 | - | ||
| 26 | - | ||
| 27 | - | ||
| 28 | - | ||
| 29 | - | ||
| 30 | - | ||
| 31 | - | ||
| 32 | - | ||
| 33 | - | ||
| 34 | - | ||
| 35 | - | ||
| 36 | - | ||
| 37 | - | ||
| 38 | - | ||
| 39 | - | ||
| 40 | - | ||
| 41 | - | ||
| 42 | - | ||
| 43 | - | ||
| 44 | - | ||
| 45 | - | ||
| 46 | - | ||
| 47 | - | ||
| 48 | - | ||
| 49 | - | ||
| 50 | - | ||
| 43 | + | 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. | |
| 51 | 44 | ||
| 52 | - | ||
| 45 | + | Type de champ | Description | |
| 46 | + | ---|--- | |
| 47 | + | ftADT | | |
| 48 | + | 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. | |
| 49 | + | ftAutoInc | Un champ entier avec incrémentation automatique. | |
| 50 | + | ftBCD | Une valeur en [Décimal codé binaire (BCD)](<https://fr.wikipedia.org/wiki/D%C3%A9cimal_cod%C3%A9_binaire>). | |
| 51 | + | ftBlob | Un objet binaire large (BLOB), destiné à stocker des données binaires arbitraires. | |
| 52 | + | ftBoolean | Une valeur binaire (True/False). | |
| 53 | + | ftBytes | Un nombre fixé d'octets stockés tels quels. La propriété Size doit être définie pour fonctionner. | |
| 54 | + | ftCurrency | Un format pour précisément stocker des valeurs monétaires. | |
| 55 | + | ftCursor | | |
| 56 | + | ftDataSet | Sans doute destiné à stocker un DataSet entier (peut-être pour implémenter une table maître/détail). | |
| 57 | + | ftDate | Une date sans information d'heure. | |
| 58 | + | ftDateTime | Information date et heure. | |
| 59 | + | ftDBaseOle | Probablement destiné à stocker des objets OLE dans les bases de données DBase. La propriété Size doit être définie pour fonctionner. | |
| 60 | + | ftFMTBcd | Une forme de champ numérique Décimal codé binaire (BCD). La propriété Size doit être définie pour fonctionner. | |
| 61 | + | ftFixedChar | Un champ caractères en taille fixe, semblable au type Pascal ShortString. La propriété Size doit être définie pour fonctionner. | |
| 62 | + | ftFixedWideChar | a fixed width multibyte character field. Needs to have its Size property set to work. | |
| 63 | + | ftFloat | Un type numérique en virgule flottante. | |
| 64 | + | ftFmtMemo | Mémo formatté (spécifique Paradox). La propriété Size doit être définie pour fonctionner. | |
| 65 | + | ftGraphic | Pour stocker une image. La propriété Size doit être définie pour fonctionner. | |
| 66 | + | 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. | |
| 67 | + | ftIDispatch | | |
| 68 | + | ftInteger | Pour des valeurs entières. | |
| 69 | + | ftInterface | | |
| 70 | + | ftLargeint | Un entier de plus grande taille avec une étendue plus large aussi. | |
| 71 | + | ftMemo | Stocke une chaîne/un texte en taille variable, ne demande pas à ce que la propriété Size soit définie. | |
| 72 | + | ftOraBlob | Probablement pour stocker des BLOB Oracle. | |
| 73 | + | 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>) | |
| 74 | + | ftParadoxOle | Probablement pour destiné à contenir des objets OLE dans une base de données Paradox. | |
| 75 | + | ftReference | | |
| 76 | + | ftSmallint | Un type entier de plus petite taille que ftInteger. | |
| 77 | + | 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. | |
| 78 | + | ftTime | Stocke de la donnée horaire seulement. | |
| 79 | + | ftTimeStamp | Stocke de la donnée date/heure. Sans doute équivalent. | |
| 80 | + | ftTypedBinary | Une forme de champ comme blob ? | |
| 81 | + | ftUnknown | | |
| 82 | + | ftVarBytes | Probablement destiné à enregistrer de la donnée Variant en taille variable. | |
| 83 | + | ftVariant | Probablement destiné à enregistrer de la donnée Variant. | |
| 84 | + | ftWideMemo | Un mémo avec des caractères de type widestring (UTF16). | |
| 85 | + | ftWideString | Un champ ftString avec des caractères de type widestring (UTF16). | |
| 86 | + | ftWord | Probablement pour stocker un valeur entière. | |
| 87 | + | ||
| 88 | + | 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 | 89 | ||
| 54 | 90 | ## Size, DataSize et Unicode | |
| 55 | 91 | ||
| 56 | - | ||
| 92 | + | 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 | 93 | ||
| 58 | - | ||
| 94 | + | La propriété DataSize en lecture seule indique la taille du champ en octets. | |
| 59 | 95 | ||
| 60 | - | ||
| 96 | + | 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 | 97 | ||
| 62 | 98 | ## Définition des types dans votre DataSet | |
| 63 | 99 | ||
| 64 | - | ||
| 100 | + | _A faire : ecrivez-moi. Expliquer les diverses façons de faire des choses (TFieldDef, TFields) et quel DataSet supporte quelle méthodes._ | |
| 65 | 101 | ||
| 66 | 102 | ## Affectation et récupération de valeurs | |
| 67 | 103 | ||
| 68 | - | ||
| 69 | - | ||
| 70 | - | ||
| 71 | - | ||
| 72 | - | ||
| 73 | - | ||
| 74 | - | ||
| 75 | - | ||
| 76 | - | ||
| 104 | + | 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 : | |
| 77 | 105 | ``` | |
| 106 | + | FTestDataset.Open; //Open for viewing/editing/inserting | |
| 107 | + | FTestDataset.Append; | |
| 108 | + | FTestDataset.Fieldbyname('YourFieldName').Asstring := 'This is my field data'; //Suppose field YourFieldName is a memo field | |
| 109 | + | FTestDataset.Post; //"Commit"/save changes in the record to the dataset. | |
| 110 | + | writeln('YourFieldName has data:' + FTestDataset.Fieldbyname('YourFieldName').Asstring | |
| 111 | + | { Retrieve the field value of the current record. Because we haven't moved the record, we should get what we just entered } | |
| 112 | + | ``` | |
| 78 | 113 | ||
| 79 | - | ||
| 114 | + | Pour les champs texte/mémo, utilisez la méthode AsString. Pour les champs date/heure, utilisez la méthode AsDateTime. | |
| 80 | 115 | ||
| 81 | 116 | ## Voir aussi | |
| 82 | 117 | ||
| 83 | - | ||
| 118 | + | * [[Databases/fr|Bases de données]] | |
| 84 | 119 | ||
| 85 | 120 | --- | |
| 86 | - | ||
| 121 | + | *From the Free Pascal wiki, page "Database field type/fr", as the Internet Archive kept it on 2023-03-31. 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).* |
