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 :

Objet Parameter défini de manière incorrecte.


Sujet :

Bases de données Delphi

  1. #1
    Membre actif
    Inscrit en
    Décembre 2002
    Messages
    438
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 438
    Points : 218
    Points
    218
    Par défaut Objet Parameter défini de manière incorrecte.
    Bonjour,

    Une exception à lieu dans mon programme (Impossible d''ouvrir le fichier "c:\test.sql". Le fichier spécifié est introuvable) et je récupére son message d'erreur pour l'inserer dans une table d'evenement (EVT).
    Mon problème est qu'il y a le caractère ":" dans la chaine de message d'erreur et Delphi interprete cela comme le passage d'un paramètre.

    Exception générée :
    Objet Parameter défini de manière incorrecte. Des informations incohérentes ou incomplètes ont été fournies

    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    insert into EVT (
     N_IDTERM,
     N_IDUTILISATEUR,
     N_IDTYPEEVT,
     S_SOURCE,
     S_DESC)
     values (
    3,
    5,
    3,
    'Traitement Exportation',
    'Impossible d''ouvrir le fichier "c:\test.sql". Le fichier spécifié est introuvable')
    Y'a t il un moyen de dire à delphi que cela n'est pas un param ?

    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut Re: Objet Parameter défini de manière incorrecte.
    si tu es sûr que le problème vient de la (), tu peux tout simplement ajouter le ':' en utilisant son code ascii :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    insert into EVT (
     N_IDTERM,
     N_IDUTILISATEUR,
     N_IDTYPEEVT,
     S_SOURCE,
     S_DESC)
     values (
    3,
    5,
    3,
    'Traitement Exportation',
    'Impossible d''ouvrir le fichier "c' + #58 + '\test.sql". Le fichier spécifié est introuvable')

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 38
    Points : 37
    Points
    37
    Par défaut [Resolu]
    Je confirme, pour l'avoir découvert sous C++ Builder, que le caractère ":" est parfois interprété comme initiant un passage de paramètres (en l'occurence chez moi, il se trouvait dans le texte d'un champ mémo et provoquait le message d'erreur rappelé dans l'objet de la discussion).

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    Justement, ça fonctionnerait peut-être mieux en utilisant un vrai paramètre et lui donnent la valeur voulue. ça devrait être géré sans problème par Delphi.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2009
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Papy214 Voir le message
    Justement, ça fonctionnerait peut-être mieux en utilisant un vrai paramètre et lui donnent la valeur voulue. ça devrait être géré sans problème par Delphi.
    Je confirme

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Même si c'est un sujet de 2004, on a comme ça des fossoyeurs qui viennent nous déterrer ce genre de question

    J'apporte mon grain de sel !

    Il existe ParamCheck (Utilisation de paramètres dans les requêtes) pour retirer la détection automatique des paramètres, cela évite l'analyse de la chaine donc un gain de perf pour une requete statique

    Citation Envoyé par Utilisation de paramètres dans les requêtes
    Remarque : Vous pouvez supprimer la génération automatique des objets paramètre en réponse au changement du texte de la requête, en définissant la propriété ParamCheck par False. C'est utile pour les instructions DDL (langage de définition des données) contenant des paramètres qui font partie de l'instruction DDL et ne sont pas des paramètres de la requête. Par exemple, l'instruction DDL pour créer une procédure stockée peut définir des paramètres faisant partie de cette procédure stockée. En définissant ParamCheck par False, vous empêchez ces paramètres d'être pris par erreur pour les paramètres de la requête.

    le mieux évidemment, c'est un vrai TParam comme le suggère Papy214 !

    Maintenant, un modo pourrait clôturer ce sujet vieux de plus de 8 ans !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

Discussions similaires

  1. fonction qui renvoi un objet Parameter
    Par robocop2776 dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/08/2007, 23h33
  2. Erreur 91 variable objet non défini
    Par sebeni dans le forum Général VBA
    Réponses: 3
    Dernier message: 07/05/2007, 11h12
  3. Réponses: 5
    Dernier message: 25/04/2007, 14h26
  4. [VBA]ActiveX : objet non défini
    Par gust dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/03/2007, 12h43
  5. Réponses: 4
    Dernier message: 16/06/2006, 00h27

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