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 - type variant incorrect


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 - type variant incorrect
    Bonjour,

    je comprend vraiment plus d'où ça peut bien venir...

    j'ai dans ma table un champs Id (qui est la clé) de type ftString.

    Table1.locate('Id',VarArrayOf(['Argileux']),[loCaseInsensitive])

    Et ce locate me fait une erreur : 'conversion de type variant incorrect'.

    j'ai essayé Table1.locate('Id','Argileux',[loCaseInsensitive]) et sa fonctionne....

    Seulement, je suis obligée de passer par un tableau de variant puisque je ne connait pas les valeurs à l'avance et que je le construit dans le code juste avant d'exécuter le locate...

    est-ce que quelqu'un verrait d'où ça peut bien venir ???

    merci d'avance pour vos réponses

  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
    ton locate sera toujours avec comme seul champ de recherche ID ou cela peut être variable ?

  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
    non ça peut êtr variable
    je construit dynamiquement l'index et les valeurs associées

  4. #4
    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
    Vu que tu passes par des tableaux de variants, vérifie la taille de ton tableau.
    Si tu n'as qu'un element tu fais un locate simple sans le VarArrayOf dans le cas contraire tu mets le VarArrayOf.

    A mon avis tu n'as pas le choix, tu vas être obligé de faire comme ca

    Citation Envoyé par Aide delphi
    KeyValues est un tableau de variants contenant les valeurs à rechercher dans les champs clé. Si KeyFields ne contient qu'un seul nom de champ, KeyValues spécifie la valeur pour ce champ dans l'enregistrement voulu. Pour spécifier plusieurs valeurs de recherche, transmettez un tableau de variants en tant KeyValues, ou construisez un tableau de variants à la volée en utilisant la routine VarArrayOf.

  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
    je crois avoir trouvé le problème...

    parce qu'en fait, ça avait déjà fonctionné avec 1 seul champs ET avec un tableau de variant, sauf que c'était sur des champs numérques...

    je pense que ça doit venir de là... si quelqu'un pouvait confirmer ???

  6. #6
    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'ai jamais eu ce pb, meme avec plusieurs champs !

    Peux tu nous donner le code te permettant de creer dynamiquement l'index et la cle.

  7. #7
    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
    Problématique : Importation à partir d'un fichier.
    J'ai les valeurs de mon enregistrement dans un tableau tabEnr.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    nbIndex:=tableBDD.IndexFieldCount;             
    SetLength(tabIndex,0); 
     
    for i:=0 to nbIndex-1 do
    begin
             if i=0 then index:=tableBDD.Fields[i].FieldName
             else index:=index+';'+tableBDD.Fields[i].FieldName;
     
             SetLength(tabIndex,length(tabIndex)+1);
             tabIndex[i]:=tabEnr[i];
    end;
     
    tableBDD.locate(index,tabIndex,[loCaseInsensitive]);

  8. #8
    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
    Tu nous a pas mis la declaration de ton Variant.
    Est ce que ce ne serait pas ca ?

    Regarde dans l'aide en ligne, l'exemple donne pour la fonction VarArrayOf.

  9. #9
    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
    je l'ai en variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabIndex: array of Variant;

Discussions similaires

  1. Conversion de type variant incorrecte
    Par kiminfor dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/06/2008, 16h52
  2. Problème avec le type variant
    Par fabrice001 dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/12/2005, 10h18
  3. [D2005] Type Variant en .NET
    Par Harry dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 28/04/2005, 18h00
  4. Opération de variant incorrecte
    Par Vulcanos dans le forum Bases de données
    Réponses: 11
    Dernier message: 16/03/2005, 21h15
  5. Convertion de type VARIANT à type CString
    Par j_grue dans le forum MFC
    Réponses: 2
    Dernier message: 07/11/2002, 14h18

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