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

Bases de données Delphi Discussion :

Comment gérez-vous les NULL dans 1 insert ?


Sujet :

Bases de données Delphi

  1. #1
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut Comment gérez-vous les NULL dans 1 insert ?
    Soit 1 fiche avec des Edits dont 1 est obligatoire (clé de la table).

    Ensuite, je construis la requète d'insert avec des AnsiQuotedStr(MonEdit,''''), mais si un champ est vide, ai-je NULL en table ?

    Ou bien y a t'il une autre technique ?

    PS: j'utilise un IBquery

    Merci pour vos lumières
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  2. #2
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    je pense que c'est à la création de ta table qu'il faut indiquer que la valeur par défaut de ton champ est Null

  3. #3
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut Re: Comment gérez-vous les NULL dans 1 insert ?
    Citation Envoyé par qi130
    Ensuite, je construis la requète d'insert avec des AnsiQuotedStr(MonEdit,''''), mais si un champ est vide, ai-je NULL en table ?
    Tu veux dire avec des MonEdit.Text ?

    Citation Envoyé par chtiot
    je pense que c'est à la création de ta table qu'il faut indiquer que la valeur par défaut de ton champ est Null
    +1

    NULL n'est pas une valeur mais l'absence de valeur donc lors de ton insertion, tu dois tester les Edit qui ont la valeur que tu considère comme NULL et utiliser NULL lors de l'insertion.

    Un papier de SQLPro qui explique comment se passe l'insertion :
    http://sqlpro.developpez.com/cours/sqlaz/dml/

    A+

  4. #4
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut Re: Comment gérez-vous les NULL dans 1 insert ?
    Citation Envoyé par qi130
    Ensuite, je construis la requète d'insert avec des AnsiQuotedStr(MonEdit,''''), mais si un champ est vide, ai-je NULL en table ?
    Non tu as une chaine vide.

    Si tu ne veux pas remplir le champ ( NULL par défaut ) il faut le supprimer de ta requète INSERT. La ligne sera tout de même ajoutée même si tout les champs ne sont pas présents. Les champs absents prendront la valeur NULL.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  5. #5
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Merci pour ces réponses collégiales

    Je prends le parti de laisser mes requètes complètes afin de pouvoir mettre à jour l'ensemble des colonnes...

    L'appel de ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function QuoteOrNull(ch_entree:String):String;  // (c) qi130
    begin
         if ch_entree='' then result:='NULL' else
            result:=AnsiQuotedStr(ch_entree,'''');
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .....QuoteOrNull(Edit1.Text)+','+QuoteOrNull(Edit2.Text)+....
    est peut-être plus couteux que des if à n'en plus finir, mais le résultat est là...

    Merci encore
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/06/2009, 12h12
  2. Réponses: 8
    Dernier message: 18/05/2009, 15h54
  3. Comment lisez-vous les nombres dans les différentes bases ?
    Par SimpleMe dans le forum Assembleur
    Réponses: 1
    Dernier message: 29/08/2007, 10h31
  4. Réponses: 8
    Dernier message: 11/10/2006, 01h57
  5. Réponses: 5
    Dernier message: 28/11/2005, 09h52

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