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 :

Affcecter une valeur NULL dans une requete paramétrée


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Affcecter une valeur NULL dans une requete paramétrée
    Bonjour,

    je travaille sous delphi 7 avec une base de donnée sql server.

    je cherche à affecter une valeur NULL dans une requête parametrée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      with DmMain.ReqInsertDefaut do
      begin
        Active := False;
        if EdIdentifiant.Text <> '' then
          Parameters[0].Value := EdIdentifiant.Text
        else
          Parameters[0].Value := ????;
        Active := True;
      end;
    Les '?' représentent l'endroit où je voudrais affecter la valeur NULL.

    Est-ce que c'est possible ? Et si oui comment ?

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 266
    Points : 291
    Points
    291
    Par défaut
    Salut

    Peut etre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parameters[0].Value := 'NULL';
    Ca fonctionne bien en SQL.

    @+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Le problème dans ta solution, c'est que tu affectes la chaine de caractères 'NULL' au paramètre mais pas la valeur NULL.

    Mais merci quand même

  4. #4
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    j'ai vu dans l'aide qu'une methode d' affecter le null et de lui appliquer
    Maintenant je ne sais pas si

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parameters[0].clear
    fonctionne.
    Avis aux amateurs.

    A+

  5. #5
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    Le code suivant doit fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parameters[0].Value := null;

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2004
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    MAMMAR:
    La fonction clear ne fonctionne pas dans mon cas. Merci de ton aide.

    Iper:
    Le token 'null' n'est pas reconnu, il doit certainement me manquer une classe que je n'ai pas importer, si tu la connais peux-tu me la donner Merci.

    Autres Informations:
    J'ai tester avec la constante vaNull dans l'unité Classes, mais cela insére le chiffre 0 au lieu de la valeur null.
    Pour détourner le système, j'ai mis un champs Required a True sur mon EditBox. Ce choix solutionne le problème puisqu'il interdit l'insertion de la chaine vide ou de la valeur null, mais cette solution est ennuyeuse car la protection se fait par le logiciel et non le SGBD.

  7. #7
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    Désolé, je ne suis pas sur de ma réponse mais il me semble que c'est réservé au type variant.

  8. #8
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    tu peux essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    with DmMain.ReqInsertDefaut do 
      begin 
        Active := False; 
        if EdIdentifiant.Text <> '' then 
          Params.Parambyname('nom_parametre').asstring := EdIdentifiant.Text 
        else 
          Params.Parambyname('nom_parametre').clear 
        Active := True; 
      end;
    A+

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

Discussions similaires

  1. Insertion d'une valeur null dans une clé étrangère
    Par labib23dz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/03/2012, 10h24
  2. Réponses: 8
    Dernier message: 05/04/2011, 08h06
  3. Réponses: 82
    Dernier message: 05/02/2011, 14h34
  4. Réponses: 1
    Dernier message: 11/06/2008, 13h33
  5. Réponses: 4
    Dernier message: 05/03/2007, 14h53

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