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 :

[DELPHI 7&INTERBASE 1.5.2] Passage de parametres laborie


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [DELPHI 7&INTERBASE 1.5.2] Passage de parametres laborie
    Bonjour tlm ,

    je me decide enfin a ecrire sur vôtre forum pour demander de l'aide concernant un passage de parametre laborieux et qui me cause des montées d'adrenalines excessives

    pour resumer : j'utilise un objet IBDATASET dans lequel je renseigne toutes mes instructions (select,delete,insert et modify) , cependant dans ces instructions ne se trouvent que l'appel a des procedures stockées.

    Afin de faciliter le devellopements de certaines fenetres qui ne font que "taper" sur des tables differentes mais dont le fonctionnement reste similaire , je me suis dit que l'ajout d'un parametre dans mes procedures afin de gerer celà côté serveur au lieux du côté applicatif serait un atout non negligeable.

    Mais grandeur et decadence , je me retrouve confronté a un pb de parametres : dans ma procedure select je rajoute donc un parametre precedé du traditionnel ":" ... ce parametre accedé par l'instruction parambyname joue bien son role dans le select

    Cependant dans les instructions d'insert , delete et modify SQL ce parametre m'est ignoré ou est reinitialisé

    instructions select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from devis_S_DEVIS_ID (:typerole,:devisid);
    instructions insert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    execute procedure DEVIS_I(
        :typerole,
        :DEVIS_ID,
        :ACTEUR_ID,
        :DEVIS_REF,
        :DEVIS_DATE,
        :DEVIS_TOTALHT,
        :DEVIS_ETAT,
        :TAUX_ID,
        :DEVIS_DEVIS_ID,
        :COMMANDE_NUMDOSSIEROPCA);
    ce parametre typerole me permettras de faire reagir differement la procedure stockée et ce n'est qu'un parametre renseigné par l'application elle meme (le nom de la fenetre).

    Actuellement j'ai trouver une parade qui consiste a modifier la proprietée string de l'endroit ou je renseigne mes instructions , mais je ne voudrais pas en arriver là...

    QQ'1 aurais une solution a me proposer?

    merci de vôtre patience lors de la lecture de ce post

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 926
    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 926
    Points : 6 040
    Points
    6 040
    Par défaut
    Bonjour et bienvenue sur Developpez.

    A toutes fins utiles, je te signale l'existence d'un forum Interbase et FireBird....


    FireBird, justement est je pense le SGBD que tu utilises (pas connaissance d'une v 1.52 d'Interbase mentionnée dans le titre )

    Enfin, au delà du code SQL fourni (bravo pour les balises de code), il serait bon de fournir le code Delphi présentant l'initialisation SQL jusqu'à l'exécution.

    @+

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par qi130
    Bonjour et bienvenue sur Developpez.

    A toutes fins utiles, je te signale l'existence d'un forum Interbase et FireBird....


    FireBird, justement est je pense le SGBD que tu utilises (pas connaissance d'une v 1.52 d'Interbase mentionnée dans le titre )
    @+
    Effectivement je me suis embrouillé dans la redaction du titre , mea culpa , C bien Firebird que j'utilise.... Sans doute les poussées d'adrenalines qui font cet effet

    Il me semble cependant que mon post est situé dans la bonne rubrique car il s'agit là de la transmission de parametre a des objets delphi pour un traitement dans Firebird (les procedures stockées ont étés testées et fonctionnent sans pb...)

    Enfin, au delà du code SQL fourni (bravo pour les balises de code), il serait bon de fournir le code Delphi présentant l'initialisation SQL jusqu'à l'exécution.
    en ce qui concerne le code presentant l'initialisation SQL , je ne fait rien de sorcier , une fois les instructions de mon post precedent etants mis en place , j'initialise les variables a la construction de ma classe de la maniere suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    self.IBD_DEVIS.parambyname('devisid').value:="mon_param";
    self.IBD_DEVIS.parambyname('typerole').value:="mon_param2";
    self.IBD_DEVIS.Close;
    self.IBD_DEVIS.Open;

    puis quelques traitements plus loin (ca passe surement par des self.IBD_DEVIS.Edit de temps a autres)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    self.IBD_DEVIS.Insert;
    Je ne pense pas sincerement que ca viennent d'un probleme de persistances de variables car mon select n'as pas besoin d'avoir ses parametres rafraichis lorsque j'enchaine un .Close / .Open

    il y a t'il besoins de declarations de parametres particuliers pour les instructions insert , delete et modify?

    please help me!!!!

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 926
    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 926
    Points : 6 040
    Points
    6 040
    Par défaut
    Citation Envoyé par Black_Angel23
    Il me semble cependant que mon post est situé dans la bonne rubrique
    Pas de souci, juste je te signalais ce forum....

    Dans le code fourni, j'ai quelques interrogations :
    self.IBD_DEVIS.Close;
    self.IBD_DEVIS.Open;
    pourquoi Close puis Open ?

    self.IBD_DEVIS.parambyname('devisid').value:="mon_param";
    des doubles quotes ?


    Tente la syntaxe suivante si ton composant le permet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.IBD_DEVIS.parambyname('devisid').AsString:='ma_valeur';

Discussions similaires

  1. Problème avec Delphi 2006 et Interbase 6
    Par merouane_k dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 24/05/2008, 19h36
  2. Delphi 2007 Firebird/Interbase
    Par dlewin dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/05/2007, 02h53
  3. Réponses: 2
    Dernier message: 13/12/2006, 18h40
  4. Déploiement DELPHI 7 avec Interbase
    Par MANUDIJON dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/08/2005, 16h01

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