+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    mai 2008
    Messages
    2 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 154
    Points : 2 205
    Points
    2 205

    Par défaut Firebird 2.5, delphi 2010, ADO et procédure stockée

    Salut !
    le composant ADOStoredProc génère une erreur dont le code erreur est -104 si le nom de la procédure stockée commence par un " ou [ c'est ce que j'ai découverts bien que IBExpert exécute cette procédure stockée sans le moindre souci.

    le vrai problème est qu'à la conception ma procédure stockée renvoie le résultat escompté mais à l'exécution j'ai pas d'enregistrements malgré que j'ai fais rentrer les mêmes données !!

    voici le code en question :
    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
    16
    17
    procedure Tfm_ProcStockee.Button1Click(Sender: TObject);
    begin
      with DataModule2.ADOStoredProc1 do
      begin
        Prepared;
        Parameters[0].Value := Edit1.Text;
        Parameters[1].Value := StrToDate(Edit2.Text);
        Parameters[2].Value := StrToDate(Edit3.Text);
    // pour être sûr que les données saisies sont juste
        ShowMessage(Parameters[0].Value);
        ShowMessage(Parameters[1].Value);
        ShowMessage(Parameters[2].Value);
        ExecProc;
        Open;
      end;
      ShowMessage(IntToStr(DataModule2.ADOStoredProc1.RecordCount));
    end;
    j'ai vérifié et revérifié mais j'ai rien trouvé d'anormal, peut-être que quelqu'un a déjà vu quelque chose de pareil .....

    merci par avance pour toute idée ou piste
    Bon courage ou Bonne Chance (selon le contexte)

  2. #2
    Candidat au titre de Membre du Club
    Homme Profil pro
    ingénieur d'appication
    Inscrit en
    août 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ingénieur d'appication
    Secteur : Service public

    Informations forums :
    Inscription : août 2008
    Messages : 10
    Points : 10
    Points
    10

    Par défaut firebrid stored proc

    bonjour
    j'ai eux le méme probléme avec IBStoredProc pour une rqette qui renvoie une resultat

    alors j'ai utiliser IBQuery de façon IBQuery sélectionne le résultat en passant les paramétrés :Aparm1 et :Aparm2 est ça marche bien
    la requette dans IBQuery "myproc"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM SP_nom_procedure (:Aparm1,:Aparm2)
    dans le editeur de code delphi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
          myproc.Close;
          myproc.ParamByName('Aparm1').DataType:=ftInteger;
          myproc.ParamByName('Aparm1').Value:=var1;
     
          myproc.ParamByName('Aparm2').DataType:=ftInteger;
          myproc.ParamByName('Aparm2').Value:=var2;
          if not myproc.Prepared then
          myproc.Prepare;
          myproc.Open;
    bonne chance

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    6 052
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 052
    Points : 12 074
    Points
    12 074
    Billets dans le blog
    3

    Par défaut

    a mon avis 'Execproc' est en trop

    Il faut considéré avec Delphi la chose suivante : 'Tout ce qui renvoi des données implique un Open dans le cas contraire on utilise un Exec , proc ou sql selon le cas' .
    Je sais le raisonnement est simpliste mais facile a retenir

    après, pour la formulation exacte, cela dépend beaucoup de la suite de composants utilisé . Perso une procédure je préfére nettement l'utilisation de la Query ("Select * from Procedure")
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •