IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

Comment éviter d'insérer du texte dans un champ integer


Sujet :

SQLite

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Comment éviter d'insérer du texte dans un champ integer
    Bonjour,
    Je n'ai rien trouvé concernant ce sujet et pourtant j'arrive à insérer des données au format texte dans des champs Integer !
    J'utilise SQLiteManage sous Firefox mais j'ai le même problème si j'insère des requêtes depuis une application.
    Existe-t-il une façon de détecter le problème à l'insertion sans utiliser de triggers mais en récupérant l'exception de SQLite ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 432
    Points : 1 128
    Points
    1 128
    Par défaut
    Bonjour,

    Sauf à valider la valeur dans ton interface, c'est une des fonctionnalités de Sqlite.

    Contrairement à d'autres bases de données, le type de la donnée est porté par la valeur de la donnée pas par le type de la colonne. C'est à dire que tu peux mettre un entier dans une colonne texte ou un texte dans une colonne numérique. Les interfaces de Sqlite permettent par ailleurs de connaître le type de la donnée que tu vas lire.

    Cordialement

    http://www.sqlite.org/different.html
    Manifest typing

    Most SQL database engines use static typing. A datatype is associated with each column in a table and only values of that particular datatype are allowed to be stored in that column. SQLite relaxes this restriction by using manifest typing. In manifest typing, the datatype is a property of the value itself, not of the column in which the value is stored. SQLite thus allows the user to store any value of any datatype into any column regardless of the declared type of that column. (There are some exceptions to this rule: An INTEGER PRIMARY KEY column may only store integers. And SQLite attempts to coerce values into the declared datatype of the column when it can.)

    As far as we can tell, the SQL language specification allows the use of manifest typing. Nevertheless, most other SQL database engines are statically typed and so some people feel that the use of manifest typing is a bug in SQLite. But the authors of SQLite feel very strongly that this is a feature. The use of manifest typing in SQLite is a deliberate design decision which has proven in practice to make SQLite more reliable and easier to use, especially when used in combination with dynamically typed programming languages such as Tcl and Python.

Discussions similaires

  1. [WD-2007] Insérer du texte dans un champ Ask par Macro
    Par JYDESHERT dans le forum VBA Word
    Réponses: 3
    Dernier message: 21/09/2011, 09h51
  2. [VSTO] Comment insérer du texte dans Word ?
    Par le_sonic dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/04/2008, 20h07
  3. [GTK+]Comment insérer du texte dans un gtk text ?
    Par jojo930 dans le forum GTK+ avec C & C++
    Réponses: 14
    Dernier message: 11/01/2008, 01h09
  4. Insérer du texte dans un champ depuis un lien (smiley)
    Par arnolem dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/04/2006, 11h27
  5. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo