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 :

Typage dynamique des colonnes.Pour la sécurité bof.


Sujet :

SQLite

  1. #1
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut Typage dynamique des colonnes.Pour la sécurité bof.
    Bonjour,

    Je suis attirée par la licence très libre de Sqlite, et le fait que ce sgbd semble très performant.

    Cependant, en faisant un test simple, je m'aperçois que le typage dynamique des colonnes, comportement souhaité de Sqlite pose quand même un problème.

    Soit la définition d'une tabel comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create table toto (bitfield bit(4));
    Où je souhaite stocker un champ de bits. Dans un autre sgbd, je suis sûr de ne pas pouvoir stocker plus que définit par le create.

    Mais avec Sqlite, problème, s'il y a un bug dans le programme, l'insert suivant est accepté...ce qui me paraît inacceptable!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into toto values(32);
    Et même pire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into toto values('stop sqlite');

    Donc, c'est au programmeur de prendre en charge la cohérence des arguments d'un insert et le typage des colonnes?

    Avez vous un retour d'expérience sur le sujet?

    J'utilise Sqlite depuis une Dll (en cours de codage).

    PS: Et encore mieux, pourquoi souhaiter un tel comportement, je ne vois pas ce qui le justifie.

  2. #2
    Membre actif Avatar de ronan99999
    Inscrit en
    Juillet 2003
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 279
    Points : 299
    Points
    299
    Par défaut
    Bonjour,
    je ne sais pas si tu as déjà lu la FAQ de sqlite;
    Peut être ce la te donnera une explication.

    http://www.sqlite.org/faq.html

    Rubrique:

    "(3) SQLite lets me insert a string into a database column of type integer!"

    C'est a l'utilisateur de garantir l'intégrité des données en respectant son schéma.

    C'est ce qui permet d'avoir un système très rapide.

  3. #3
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Bonjour,

    Effectivement j'ai lu cette FAQ, donc ce choix est juste lié à la rapidité.

    Je me demandais juste si quelques programmeurs avaient tirer un autre avantage de cette particularité.

    J'ai réussi à faire un Objet C++, qui encapsule Sqlite (enfin juste quelques fonctions), exporté via une Dll vers mon code Delphi...

    Et ce choix d'implémentation se retrouve dans l'API...c'est bien à l'utilisateur de se débrouiller avec la cohérence des données.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Taille dynamique des colonnes sur une ListView
    Par Julien_G dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 07/05/2009, 11h17
  2. Redimensionnement dynamique des colonnes
    Par jamin dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 07/01/2009, 17h08
  3. Gestion dynamique des colonnes dans un TVirtualTreeView
    Par engi dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/03/2008, 16h17
  4. Des colonnes pour une liste
    Par virtuadrack dans le forum C
    Réponses: 3
    Dernier message: 03/12/2007, 19h35
  5. Réponses: 4
    Dernier message: 18/04/2007, 23h23

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