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 :

Créer une procédure stockée depuis Delphi


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut Créer une procédure stockée depuis Delphi
    Bonjour,

    j'essaie de créer une procédure stockée depuis Delphi en utilisant un TIbquery.
    Je lui passe tout le code de création de la procédure, mais au moment de l' "execsql"

    message d'erreur : "Token unknow : ?"
    Ca je pense que ça se passe lorsqu'il essaie de remplacer les variables (ce qui se trouve derrière les ":" )

    Bref, j'ai essayé de tourner ça dans tous les sens sans succés.

    Connaissez-vous un composant qui me permettrait de lancer un script.

    J'utilise Interbase et Delphi6.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut,

    Est-ce que tu as bien encadré la définition de ta PS par des SET TERM ?
    Le problème vient peut-être de là !

    De plus j'utiliserais plutôt un TIBSQL pour ça !

    @+

  3. #3
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    oui, j'ai essayé avec "SET TERM"

    mais j'ai le message "token unknow :TERM"

  4. #4
    Membre habitué Avatar de Guile
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 130
    Points : 144
    Points
    144
    Par défaut
    Le problème vient surtout du fait que dans les procédures stockées, il y a des ";" et que dans un query on ne peut mettre qu'une instruction SQL. Il s'arrete donc au premier ";" trouvé et ne s'attend pas à ce qu'il y est quelque chose derrière .
    La solution à ce problème c'est de dire à interbase que le caractère de fin d'instruction n'est pas ";" mais plutot "^".
    Tu dois donc rajouter avant ton script de création
    Ensuite tu remplaces le ";" après le dernier END de ton script par un "^"

    et enfin pour revenir en configuration normal, tu finis par
    Il existe 10 sortes de personnes, ceux qui comprennent le binaire et les autres...

  5. #5
    Membre habitué Avatar de Guile
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 130
    Points : 144
    Points
    144
    Par défaut
    Oups, vous etes plus rapide que moi
    Il existe 10 sortes de personnes, ceux qui comprennent le binaire et les autres...

  6. #6
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    je viens d'essayer un TIBSQL, ça ne fonctionne pas mieux,
    voici mon code avec le SET TERM :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
         sql.Add(' SET TERM ^;');
          sql.Add(' CREATE PROCEDURE MAJ_MAXTEMPS1 (NUMPATIENT INTEGER)');
          sql.Add(' AS');
          sql.Add(' DECLARE VARIABLE ValMax INTEGER;');
          sql.Add(' BEGIN');
          sql.Add('  select MAX(obj_Att.valeur) from OBJ_ATT where');
          sql.Add('  Obj_ATT.id_attribut=');
          sql.Add('  (select preference.valeur from preference where preference.cle=''ID_ATTRIBUT_SEQUENCE'')');
          sql.Add('  INTO :ValMax;');
          sql.Add('  UPDATE PERSONNE SET PERSONNE.maxtemps=:ValMax WHERE PERSONNE.id_personne=:NUMPATIENT;');
          sql.Add(' END^');
          sql.Add(' SET TERM ;^');

    j'ai le message "token unknow TERM"

    Une erreur de syntaxe peut-être..

    J'essaie maintenant avec un TSQLScript.. on verra bien...

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re-Salut,

    J'ai trouver une info dans le fichier DevGuide.pdf page 215.

    Il précise qu'on peut créer une PS dynamiquement. Il faut utiliser un TIBQuery (bien vu Blonde ), y entrer la déclaration de la PS sans les SET TERMs mais surtout il faut mettre le ParamCheck du Query à False.

    Tiens nous au courant;
    @+

  8. #8
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    c'est trop sympa de prendre le temps de m'aider.
    Le fichier DevGuide.pdf se trouve sur ce site? Je ne le connais pas


    J'avais carrément pas pensé à la propriété ParamCheck..

    Ca MARCHE

    Et dire que la solution était toute bête....

    Merci beaucoup Claudius40 !!!

  9. #9
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    You're welcome, my dear

    Tu pourras trouver toute la doc (en anglais) sur interbase au format pdf à cette adresse. Elle s'applique à IB 6 OpenSource qui va aussi pour FB 1.5

    http://www.aoindustries.com/docs/interbase/

    Salut et @+

  10. #10
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    pfff, ça va, je l'ai trouvé le guide du développeur, je suis un peu à la ramasse parfois...

  11. #11
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    merci pour le lien, je vais tout télécharger!

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

Discussions similaires

  1. Créer une procédure stockée sous MySQL avec phpmyadmin
    Par Jordan59 dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 17/08/2011, 14h08
  2. executée une procédure stockée depuis access 97
    Par sandmil dans le forum Access
    Réponses: 1
    Dernier message: 12/07/2007, 11h51
  3. Réponses: 4
    Dernier message: 26/04/2007, 09h03
  4. Réponses: 2
    Dernier message: 01/03/2007, 14h46
  5. créer une procedure stockée sous delphi
    Par gudul dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/11/2004, 14h06

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