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 :

IBSql et StoredProc [FAQ]


Sujet :

SQL Firebird

  1. #1
    jlf
    jlf est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 140
    Points : 49
    Points
    49
    Par défaut IBSql et StoredProc
    bonjour

    j'ai encore une question neuneu :
    parmi les compos IBX IBSql est beacoup plus rapide

    est-il possible de l'utiliser pour executer une procédure stockée avec des input/output paramètres, et est-ce effectivement plus rapide qu'avec un IBStoredProc ?

    bien amicalement
    jlf

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    IBSQL est plus léger que IBDataSet ou IBQuery car il fait moins de choses.
    Notamment il ne va pas pouvoir se connecter à un DataSource et donc aux composants de type DB.

    MAIS MAIS..... Il y a plusieurs "mais" :
    1-La différence de performance est infime
    2-Si vous devez afficher un résultat, autant prendre un IBDataSet ou IBQuery car je ne suis pas certain que le code que vous allez devoir écrire pour afficher les données soit plus optimisé que le code des composants VCL...

    L'optimisation c'est bien mais là la différence entre les composants est si faible qu'il faut être un expert pour pouvoir en tirer avantage...
    Pour illustrer mes dires :

    En théorie une Ferrari est plus rapide qu'une Subaru. Mettez Alain Prost dans la Subaru et un conducteur "normal" dans la ferrari et donnez le départ sur une route sinueuse de montagne....
    Qui gagnera ??? la Ferrari qui techniquement est bien supérieure ? Non ne ne crois pas, car pour que la Ferrari gagne il aurait fallu quelle soit pilotée par un conducteur expérimenté...

    Voilà ce que je pense sachant qu'en plus ce n'est pas tout à fait le même parrallèle car IBSQL ne fait pas tout ce que fait IBQuery ou IBDataSet.

    Voilà c'est mon coup de gueule de la journée

    Sinon pour répondre à la question, IBStoredProc est bien si la PS ne renvoie pas de liste et si vous n'avez pas besoin d'afficher le résultat. Sinon il vaut mieux passer pas un select ... from MaPS(aram); dans un IBQuery si vous voulez afficher le résultat ou dans un IBSQL si vous n'allez pas afficher le résultat (traitement par programme).

  3. #3
    jlf
    jlf est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    IBSQL est plus léger que IBDataSet ou IBQuery car il fait moins de choses
    [...]
    MAIS MAIS..... Il y a plusieurs "mais"
    merci Barbibule de ces précisions car on lit partout que IBSql est"beaucoup" plus rapide mais certaines nuances ne sont pas toujours très explicites

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Il est plus rapide car il fait moins de choses. Donc si ces choses qui sont fait en plus dans les composants IBQuery et IBDataSet ne vous servent pas prennez IBSQL sinon vous allez perdre votre temps à réinventer la poudre.

    Pour simplifier le choix :
    Pour les ordres Select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    1-Avez vous besoin d'afficher les données pour l'utilisateur final ?
      Oui
        1-1 L'utilisateur final a besoin de modifier ces données ?
          Oui : IBDataSet
          Non : IBQuery
     
      Non IBSQL
    Pour les ordres updates ou insert ou delete que vous ne pouvez pas mettre dans le IBDataSet parce que vous faites un traitement bien particulier vous pouvezles mettres dans un IBSQL.

  5. #5
    jlf
    jlf est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 140
    Points : 49
    Points
    49
    Par défaut
    1-Avez vous besoin d'afficher les données pour l'utilisateur final ?
    Oui
    1-1 L'utilisateur final a besoin de modifier ces données ?
    Oui : IBDataSet
    Non : IBQuery
    en édition de tables IBDataset est préférable à IBQuery + IBUpdateSQL ?

  6. #6
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Oui car en fait le IBQuery a été créé dans un soucis de faciliter les application BDE. IBQuery est basé sur le composant IBDataSet auquel on a masqué la partie Update...

    Donc plutot que d'utiliser un IBQuery + IBUpdate utilisez le IBDataSet.

Discussions similaires

  1. Où est l'erreur de syntaxe dans storedProc ACCESS
    Par colorid dans le forum Bases de données
    Réponses: 4
    Dernier message: 11/07/2011, 22h43
  2. ado storedproc returnvalue
    Par butch dans le forum Delphi
    Réponses: 12
    Dernier message: 25/05/2007, 17h00
  3. erreur: ...ANSI_NULLS et ANSI_WARNINGS.. dans une storedProc
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/12/2005, 21h24
  4. [Firebird] affecté un numeric par IBSQL
    Par free07 dans le forum SQL
    Réponses: 5
    Dernier message: 18/10/2005, 14h06
  5. Copie de paramétres entre IBSQL et IBQUERY
    Par RamDevTeam dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/08/2004, 09h43

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