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

SQL Firebird Discussion :

Question sur Execute statement


Sujet :

SQL Firebird

  1. #1
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut Question sur Execute statement
    Bonjour,

    Je commence à avoir des doutes sur l'execute statement. En principe dans une PS le FOR SELECT et le FOR EXECUTE STATEMENT font la même chose sauf que le 2eme peut être sujet à des erreurs de syntaxe et seulement ca sinon pour le reste c'est la même chose que le 1er n'es-ce pas ?
    En vous remerciant de m'eclairer
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    effectivement, la commande contenue dans le STATEMENT n'est pas contrôlée (et ce que ce soit dans une boucle FOR ou pas)

    Citation Envoyé par traduction manuel
    Mises en garde avec EXECUTE STATEMENT

    • Il n'y a aucun moyen de valider la syntaxe de l'instruction jointe.
    • Il n'y a pas de vérification des dépendances pour savoir si des tables ou des colonnes ont été supprimées.
    • Les opérations seront lentes car l'instruction intégrée doit être préparée chaque fois qu'elle est exécutée.
    • La chaîne d'argument ne peut contenir aucun paramètre. Toute substitution de variable dans la partie statique de l'instruction DSQL doit être effectuée avant l'appel de EXECUTE STATEMENT.
    • Les valeurs de retour sont strictement vérifiées pour le type de données afin d'éviter les exceptions imprévisibles de type casting. Par exemple, la chaîne '1234' serait convertie en un nombre entier, 1234, mais 'abc' donnerait une erreur de conversion.
    • L'instruction DSQL soumise est toujours exécutée avec les privilèges de l'utilisateur actuel. Les privilèges accordés au déclencheur ou au SP qui contient l'instruction EXECUTE STATEMENT ne sont pas actifs pendant l'exécution de l'instruction DSQL.



    Dans l'ensemble, cette fonctionnalité est destinée uniquement à une utilisation très prudente et vous devez toujours tenir compte des facteurs ci-dessus.
    Utilisez EXECUTE STATEMENT seulement quand d'autres méthodes sont impossibles.
    il faut donc gérer la possibilité d'erreurs si besoin
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonjour SergioMaster,

    Citation Envoyé par SergioMaster
    il faut donc gérer la possibilité d'erreurs si besoin
    Pour ca c'est possible mais j'etait parti avec l'idée la vitesse d'execution aurait été identique à celle d'une PS avec un simple FOR SELECT etant données que c'est compiler et mis en cache et donc préparer qu'une seule fois par le serveur mais d'après les mises en gardes

    Les opérations seront lentes car l'instruction intégrée doit être préparée chaque fois qu'elle est exécutée.
    Donc c'est risqué ou juste pour de petits traitements

    Les différents critères de sélections d'une tables jointe avec d'autres tables m'ont obligés de construire une PS avec le FOR EXECUTE STATEMENT.
    Lorsque j'appelle la PS depuis le client, je dois envoyer un critère de sélection. Bon, je crois qu'il faut abandonner cette méthode en utilisant simplement un FOR SELECT dans la PS. Juste, SVP, une petite question SergioMaster, es-ce qu'on peut se risquer avec des select from PS (contenant un FOR SELECT) depuis le client avec des critères de sélection toujours depuis le client ? Je vous remercie et merci pour les mises en gardes.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  4. #4
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bon c'est régler.
    J'abandonne le select from PS pour un select from view c'est plus simple.
    Merci SergioMaster
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

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

Discussions similaires

  1. Question sur l'execution des threads
    Par khaigo dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 28/10/2009, 18h32
  2. Réponses: 5
    Dernier message: 19/08/2009, 19h54
  3. Réponses: 1
    Dernier message: 14/01/2008, 14h36
  4. [VBA] question sur le Db.execute
    Par dyree dans le forum Access
    Réponses: 1
    Dernier message: 14/08/2006, 13h34
  5. Réponses: 16
    Dernier message: 11/07/2006, 11h30

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