Utilisation des types de données des bases de données

Adobe AIR 1.0 et les versions ultérieures

Lorsqu’une table est créée dans une base de données, l’instruction de création définit l’affinité, ou le type de données, pour chaque colonne de cette table. Bien que les déclarations d’affinité puissent être omises, il est préférable de déclarer explicitement l’affinité des colonnes dans vos instructions SQL CREATE TABLE .

En règle générale, tout objet stocké dans une base de données par une instruction INSERT est renvoyé sous forme d’occurrence du même type de données lorsque vous exécutez une instruction SELECT . Toutefois, le type de données de la valeur récupérée peut différer selon l’affinité de la colonne de la base de données dans laquelle la valeur est stockée. Lorsqu’une valeur est stockée dans une colonne, si son type de données ne correspond pas à l’affinité de la colonne, la base de données tente de convertir cette valeur en fonction de cette affinité. Par exemple, si une colonne de base de données est déclarée avec une affinité NUMERIC , la base de données tente de convertir les données insérées en classe de stockage numérique ( INTEGER ou REAL ) avant de stocker les données. Si les données ne peuvent pas être converties, la base de données renvoie une erreur. Selon cette règle, si la chaîne « 12345 » est insérée dans une colonne NUMERIC , la base de données la convertit automatiquement en la valeur entière 12345 avant de la stocker dans la base de données. Lorsqu’elle est récupérée par une instruction SELECT , la valeur est renvoyée sous forme d’occurrence d’un type de données numérique (tel que Number) plutôt que sous la forme d’une occurrence de String.

Le meilleur moyen d’éviter une conversion non désirable du type de données est de respecter deux règles. D’abord, définissez chaque colonne avec l’affinité correspondant au type de données à stocker. Ensuite, insérez uniquement les valeurs dont le type de données correspond à l’affinité définie. Le respect de ces règles présente deux avantages. Les données ne sont pas converties de façon imprévue lors de leur insertion (ce qui peut éventuellement en modifier le sens). De plus, lorsque vous récupérez les données, elles sont renvoyées avec leur type de données d’origine.

Pour plus d’informations sur les types d’affinités de colonne disponibles et l’utilisation des types de données dans une instruction SQL, voir Prise en charge des types de données .