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 :

envoyer null dans un Query.Param ?


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Points : 105
    Points
    105
    Par défaut envoyer null dans un Query.Param ?
    bonjour à tous,

    je construit une requête du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into MaTable (MonChamps) values (:MonChamps);
    et je souhaiterais parfois envoyer null dans un paramètre, mais je n'y arrive pas...

    quelqu'un aurait t - il une idée ?
    je précise que je travaille sur Interbase, et que mon champs est du type BLOB...

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Query.ParamByName('test').Value := null;
    Normalement ca devrait focntionner

  3. #3
    Membre régulier Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Points : 105
    Points
    105
    Par défaut
    malheureusement,
    cela ne marche pas, j'ai le message suivant :
    "Pas de valeur pour le paramètre 'MonChamps'"

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    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 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Il faut faire :
    - 1 clear du param
    - puis mettre le bounds à True

    une petite recherche dans le forum Interbase n'aurait pas été de trop...

  5. #5
    Membre régulier Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Points : 105
    Points
    105
    Par défaut
    merci,

    je suis désolé, mais j'ai toujours le même message....
    même en faisant le clear, puis le bound à true.

    peut être est ce à cause du type blob ?

  6. #6
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par Malatar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Query.ParamByName('test').Value := null;
    Je crois il faut préciser le type du paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    with Query.ParamByName('test') do
    begin
      DataType := ftBlob;
      Value := null;
    end;
    ***

    Citation Envoyé par qi130
    une petite recherche dans le forum Interbase n'aurait pas été de trop...
    ...parfois la condescendance de certains participants à ce forum me rend mal à l'aise... Mais ce n'est pas personnel qi130, j'ai vu pire...

    -Slimjoe

  7. #7
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    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 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Quels composants sont utilisés pour la connexion ?

  8. #8
    Membre régulier Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Points : 105
    Points
    105
    Par défaut
    slimjoe, je teste ta solution et vous tient au courant.
    j'utilise les composants dbExpress, SQLConnection, et SQLQuery avec Interbase 7.5.

  9. #9
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Je ne connais pas beaucoup les Blob mais l'aide de mon Delphi 7 m'indique que AsBlob réagit comme AsString. As tu essayé de passer une chaîne vide ou NULL à AsBlob ?


    À ta place, j'essayerais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query.ParamByName('test').AsBlob := '';
    ou ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query.ParamByName('test').AsBlob := NULL;

    Bon dev!

    -Slimjoe

  10. #10
    Membre régulier Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Points : 105
    Points
    105
    Par défaut
    merci beaucoup SlimJoe, ta solution marche à merveille.
    en effet, il faut préciser le datatype au param.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    with Query.ParamByName('test') do 
    begin 
      DataType := ftBlob; 
      Value := null; 
    end;
    concernant, la condescendance, ce n'est pas bien grave ;-)
    et je met le tag résolu.

    merci encore à tous.

  11. #11
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Sinon au pire tu peux la passer directement dans la requete, normalement NULL est un mot clef du SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into MaTable (MonChamps) values (NULL);
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Query.Param('Monchamps).Value := 'NULL';
    A tester la deuxieme solution.

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

Discussions similaires

  1. problème de LIKE + param dans un query
    Par Pierre Quefer dans le forum AS/400
    Réponses: 11
    Dernier message: 30/01/2009, 13h24
  2. [Oracle] Recherche nulle dans une base et affichage
    Par GLDavid dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2006, 01h01
  3. [IB6] param NULL dans 1 query
    Par qi130 dans le forum InterBase
    Réponses: 2
    Dernier message: 04/04/2005, 13h57
  4. recherche Date nulle dans une table
    Par lol_adele dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/04/2004, 14h06
  5. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52

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