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

C++Builder Discussion :

[TADOStoredProc] initialisation des param�tres et lancement


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    14
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 14
    Par d�faut [TADOStoredProc] initialisation des param�tres et lancement
    bonjour, Apr�s avoir fait des recherches sur Internet et sur ce forum, je n'ai pas vraiment trouv� ce que je voulais alors je vous expose mon probl�me :

    j'ai un logiciel de base de donn�e (oracle) sur lequel j'ai une proc�dure stock�e (ajoutpersonne(nom varchar2, prenom varchar2)).
    J'aimerai savoir exactement la manipulation pour d�clencher cette proc�dure � partir de mon programme.
    j'ai un �l�ment TADOConnection et un �l�ment TADOStoredProc.
    la connection est initialis�e, et l'objet TADOStoredProc possede pour propri�t� connection la connection ci dessus et en membre "ProcedureName" : "ajoutpersonne". Il me manque plus qu'� initialis� les param�tre avec les champs texte et l'executer. (la procedure ou plutot fonction retourne une valeur)

    Pouvez vous m'indiquer la marche a suivre pour initialiser les param�tres. Car pour executer la procedure c'est ExecProc().
    Merci d'avance

  2. #2
    Membre confirm�
    Inscrit en
    F�vrier 2005
    Messages
    26
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 26
    Par d�faut
    Utilise
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Proc->Parameters->CreateParameter(Nom,Type,Direction,Taille,NULL);
    Extrait de l'aide de Builder :
    Ajoute un param�tre � l'ensemble de param�tres.

    TParameter* __fastcall CreateParameter(const WideString Name, Db::TFieldType DataType, TParameterDirection Direction, int Size, const OleVariant &Value);

    Description

    Appelez CreateParameter pour cr�er un seul objet TParameter et l'ajouter � l'ensemble TParameters. Les valeurs des propri�t�s du nouvel objet TParameter aojut� sont fournies via les param�tres CreateParameter.

    Name est une valeur de type WideString contenant le nom du nouvel objet TParameter cr��.

    DataType est une valeur de type TDataType indiquant le type de donn�es du param�tre que le nouvel objet TParameter repr�sente.

    Direction est une valeur de type TParameterDirection indiquant le type du param�tre. Un param�tre repr�sent� par un TParameter peut �tre un des types : entr�e, sortie, entr�e-sortie ou valeur renvoy�e. D�signez un param�tre inconnu si le type de param�tre est inconnu au moment de la cr�ation du TParameter.

    Size est une valeur enti�re indiquant la taille maximale de la valeur du param�tre.

    Value est du type OleVariant contenant la valeur du param�tre. Il n'est pas n�cessaire de transmettre de valeur � Value lors de la cr�ation du TParameter. Elle peut �tre affect�e plus tard. Si aucune valeur n'est affect�e � ce moment, transmettez NULL � Value.

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    14
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 14
    Par d�faut oki mais
    merci pour l'info car moi j'hesitais avec addparameter(...).

    mais pour cette methode :

    Proc->Parameters->CreateParameter(Nom,Type,Direction,Taille,NULL);
    le nom correspond au nom d'un parametre de la m�thode ou je lui fourni le nom du param�tre correspondant au param�tre nom de ma proc�dure stock�e.

    Je sais c'est des questions b�tes mais je n'ai pas d'exemples

  4. #4
    Membre confirm�
    Inscrit en
    F�vrier 2005
    Messages
    26
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 26
    Par d�faut
    J'utilise cela avec SQL server.

    Dans ce cas l�, il faut que tous les param�tres (Nom,Type,Taille,Direction) correspondent EXACTEMENT � ceux d�crit dans la proc�dure Stock�e.

    Contrairement � ce que l'on pourrait croire, l'ordre de cr�ation des param�tres n'est pas suffisant pour faire le lien entre le TADOStoredProc et la proc�dure stock�e.

  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    14
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 14
    Par d�faut ca marche aps
    il me dit erreur d'acces dans le module etc.. (acces violation at adress ... in module ...) j'ai juste fait ca.
    mais je ne sais pas si cela convient avec oracle:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    maprocstoc->Active = true;
            maprocstoc->Parameters->AddParameter();
            maprocstoc->Parameters->CreateParameter("titre",ftString,pdInput,4,edtitre->Text);
            maprocstoc->Parameters->CreateParameter("nom",ftString,pdInput,128,ednom->Text);
            maprocstoc->Parameters->CreateParameter("prenom",ftString,pdInput,128,edprenom->Text);
            maprocstoc->Parameters->CreateParameter("adr1",ftString,pdInput,128,edadr->Text);
            maprocstoc->Parameters->CreateParameter("adr2",ftString,pdInput,128,edadr2->Text);
            maprocstoc->Parameters->CreateParameter("cp",ftString,pdInput,5,edcp->Text);
            maprocstoc->Parameters->CreateParameter("ville",ftString,pdInput,128,edville->Text);
            maprocstoc->Parameters->CreateParameter("tel",ftString,pdInput,12,edtel->Text);
            maprocstoc->Parameters->CreateParameter("fax",ftString,pdInput,12,edfax->Text);
            maprocstoc->Parameters->CreateParameter("gsm",ftString,pdInput,12,edport->Text);
            maprocstoc->ExecProc();
            maprocstoc->Active = false;
    merci de me repondre rapidement si vous en avez la possibilit�

  6. #6
    Membre confirm�
    Inscrit en
    F�vrier 2005
    Messages
    26
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 26
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    maprocstoc->Active = true;
    Demande l'ex�cution de la proc�dure stock�e.
    C'est donc normal que �a plante vu qu'il y a pas de param�tres.

    D'ailleurs, on utilise ExecProc() dans le cas d'une proc�dure stock�e ne renvoyant pas de jeu d'enregistrement et Active=true dans le cas contraire

    Ce qui nous fait :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    maprocstoc->Parameters->Clear(); // pour supprimer tous les paramètres si'il y an avait
    maprocstoc->Parameters->AddParameter();
            maprocstoc->Parameters->CreateParameter("titre",ftString,pdInput,4,edtitre->Text);
            maprocstoc->Parameters->CreateParameter("nom",ftString,pdInput,128,ednom->Text);
            maprocstoc->Parameters->CreateParameter("prenom",ftString,pdInput,128,edprenom->Text);
            maprocstoc->Parameters->CreateParameter("adr1",ftString,pdInput,128,edadr->Text);
            maprocstoc->Parameters->CreateParameter("adr2",ftString,pdInput,128,edadr2->Text);
            maprocstoc->Parameters->CreateParameter("cp",ftString,pdInput,5,edcp->Text);
            maprocstoc->Parameters->CreateParameter("ville",ftString,pdInput,128,edville->Text);
            maprocstoc->Parameters->CreateParameter("tel",ftString,pdInput,12,edtel->Text);
            maprocstoc->Parameters->CreateParameter("fax",ftString,pdInput,12,edfax->Text);
            maprocstoc->Parameters->CreateParameter("gsm",ftString,pdInput,12,edport->Text);
            maprocstoc->ExecProc();

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 26/02/2013, 11h41
  2. R�ponses: 0
    Dernier message: 22/02/2010, 14h03
  3. R�ponses: 9
    Dernier message: 29/08/2008, 08h38
  4. R�ponses: 3
    Dernier message: 21/08/2008, 23h13
  5. R�ponses: 10
    Dernier message: 13/09/2006, 09h13

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