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 :

locate avec valeurs nulles


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut locate avec valeurs nulles
    Bonjour

    je ne sais pas si c'est possible...

    je souhaite faire un locate avec en paramètre pour certain de mes champs la valeur null.

    Le but : lors d'une importation, faire le test sur tous les champs de la table pour savoir si l'enregistrement existe déjà ou pas...Et comme certaine colonnes peuvent ne pas être remplies...

    est-ce que qulqu'un saurait si cela est possible ou si je doit passer obligatoirement par une requête select count(*) from maTable where .... ??

    merci d'avance pour vos réponses

  2. #2
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Essaies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from maTable where Champs is null

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    vi vi la requête sql ne me pose pas pb... Je voulais savoir si je pouvais le faire par un locate

  4. #4
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Exactement la même chose


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTable.Filter = 'champs is null';

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    mais euh un filtre c'est pas un locate :

    je veux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableBDD.locate(index,tabIndex,[loCaseInsensitive])
    avec index qui est une chaine de caractère de tous mes champs séparés par un ;
    tabIndex qui est un tableau de variant contenant chacunes des valeurs des champs.

    Et la question est, est-ce que dans ce tableau il est possible d'une quelconque manière de dire que tel champs est nul ???

    j'ai essayé en mettant null dans la case correspondante, mais ça me renvoie une erreur.

  6. #6
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut

    Vraiment désolé je ne sais pas pourquoi je parle de filtre, j'ai du lire filtre quelque part dans le forum est j'ai pensé que tu parles de filtres.
    1000 excuses.

  7. #7
    Membre actif
    Inscrit en
    Juin 2002
    Messages
    409
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 409
    Points : 234
    Points
    234
    Par défaut
    Salut,
    J'en suis pas sur, mais ... essaie en laissant les champs vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xxx.locate('Champ1;Champ2;Champ3',VarArrayof(['Val1',,'Val3'],locateoptions);
    Note le vide entre val1 et Val3.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    non ça ne marche pas non plus, ça me met 'erreur de variant' ou un truc dans le genre chais plus trop

  9. #9
    Membre actif
    Inscrit en
    Juin 2002
    Messages
    409
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 409
    Points : 234
    Points
    234
    Par défaut
    Eh bien, je ne pense pas que se soit possible !!!
    Desole.
    Je pense que l'explication, c'est que NULL n'est pas une valeur, donc on ne peut pas le comparer !

    Peut etre pourrais tu t'en sortir en passant par une procedure stockee ou un Querry et en retirer la cle primaire qui te permettra ensuite de te positionner dans ton DataSet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select * from Table
    where ((Table.Champ1 is null) or (Table.Champ1= #))
    and ((Table.Champ2 is null) or (Table.Champ2 = #))
    Ou quelque chose comme ca !

    En tout cas, c'est dans cette direction que moi je chercherais !
    Bon courage.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    J'ai la solution ave une requête select count...

    je me demandais juste si c'était faisable par un locate tant pis..

  11. #11
    Membre actif
    Avatar de Eric.H
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 220
    Points : 286
    Points
    286
    Par défaut
    Teste "pour notre culture générale a tous"....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Locate('test;test2',VararrayOf(['TT',null]),[])
    VararrayOf(['TT',null]),[])

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    Or donc pour la culture générale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Locate('test;test2',VararrayOf(['TT',null]),[])
    fonctionne correctement...

    Ma problématique vient du fait que je dois construire mon tableau de valeurs (à partir de valeurs récupérée dans un fichier)
    Du coup, je fais ça dans un array of Variant qui lui j'ai l'impression ne supporte pas qu'une case soit à null....

  13. #13
    Membre actif
    Avatar de Eric.H
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 220
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par lol_adele
    Du coup, je fais ça dans un array of Variant qui lui j'ai l'impression ne supporte pas qu'une case soit à null....
    C'est plus qu'étonnant :

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    ça y'est c'est bon j'ai réussi à faire fonctionner tout ça....

    j'crois que je m'étais emmêlée les pinceaux dans mon code

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

Discussions similaires

  1. Pb addition avec valeur NULL
    Par major2 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 14/03/2006, 15h33
  2. [PostGreSLQ] pb d'UPDATE avec valeur NULL
    Par mellie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/03/2006, 10h03
  3. Calcul de stock avec valeure null
    Par nideux dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 11h10
  4. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40
  5. Pb requete avec valeurs nulles
    Par James85 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/04/2004, 10h20

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