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

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 107
    Points : 2 131
    Points
    2 131

    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 :
    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 :
    SELECT * FROM SP_nom_procedure (:Aparm1,:Aparm2)
    dans le editeur de code delphi
    Code :
    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 Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 401
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 58
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 401
    Points : 10 584
    Points
    10 584

    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
  •