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 :

execute block


Sujet :

SQL Firebird

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut execute block
    Bonjour,

    je me suis permis de transférer cette partie dans une autre discussion l'origine de la discussion était savoir-champs-existe-table/
    Citation Envoyé par Artemus24 Voir le message
    Je suis désolé si je viens perturber ce sujet, mais j'ai essayé de faire les tests.
    Je le simplifie au maximum et j'ai cette erreur :
    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
    18
    execute block
    as
      declare i int = 0;
    Statement failed, SQLSTATE = 42000
    Dynamic SQL Error
    -SQL error code = -104
    -Unexpected end of command - line 3, column 19
    After line 0 in file Test.sql
    begin
    end;
    Statement failed, SQLSTATE = 42000
    Dynamic SQL Error
    -SQL error code = -104
    -Token unknown - line 1, column 1
    -begin
    At line 4 in file Test.sql
     
    quit;
    Il me semble que la syntaxe soit correcte mais comme je suis encore débutant avec FireBird, il se peut qu'un paramétrage soit nécessaire quelque part.
    Idem pour le 'try ... except ... end;'
    Comme l'indique SergioMaster, je suis en ligne de commande 'ISQL'. Dois-je comprendre que je ne suis pas dans le bon environnement ?
    le try except end c'est avec Delphi

    pour le execute block il faudrait plutôt montrer le sql entier et les erreurs à la suite pour que je puisse me faire une idée
    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

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Citation Envoyé par SergioMaster
    le try except end c'est avec Delphi
    C'est un autre environnement comme 'ibexpert' ? Et il y a combien d'environnements pour exploiter 'firebird' ?
    Tu parles aussi de 'FlameRobin'. Est-ce un environnement ?

    Et comment fais-tu pour savoir qui appartient à quoi ? J'ai tendance à m'y perdre.

    Est-ce franchement utile d'installer 'ibexpert' ? J'ai l'impression que OUI car il y a beaucoup d'exemples.

    Citation Envoyé par SergioMaster
    pour le execute block il faudrait plutôt montrer le sql entier et les erreurs à la suite pour que je puisse me faire une idée
    Mais c'est le code sql en entier. Je l'ai réduit à sa plus simple expression. Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    execute block
    as
    begin
    end;
     
    quit;
     
    Appuyez sur une touche pour continuer...
    et bien, je n'ai pas d'erreur. Mais dans l'exemple précédent, si j'ajoute 'declare i int = 0;', j'ai une erreur, comme si le ';' posait problème.
    Je rappelle que j'exécute ce code sous 'isql'.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    C'est un autre environnement comme 'ibexpert' ? Et il y a combien d'environnements pour exploiter 'firebird' ?
    Tu parles aussi de 'FlameRobin'. Est-ce un environnement ?
    Non Try except c'est du pascal objet dont le plus connu est Delphi. C'est donc un langage de développement.

    IBExpert, FlameRobin, EMS SQL Manager, et probablement d'autres sont des outils d'administration.
    Pour la conception, l'optimisation, la gestion des Bases de données.

    Citation Envoyé par Artemus24 Voir le message
    Et comment fais-tu pour savoir qui appartient à quoi ? J'ai tendance à m'y perdre.
    Parce qu'il est fort !!


    Citation Envoyé par Artemus24 Voir le message
    Est-ce franchement utile d'installer 'ibexpert' ? J'ai l'impression que OUI car il y a beaucoup d'exemples.
    Lorsque vous devez copier des fichiers de manière exceptionnelle est-ce que vous trouver plus rapide et pratique de lancer une fenêtre DOS et utiliser la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy e:\Developpements\Delphi\Delphi7\Serveurs\blabla\blabla\encore bla\Et\bla\chemin interminablement long a saisir manuellement\*.pas y:\les sauvegardes\encore un chemin à la noix\ce n est pas possible je vais finir par me tromper\
    ou bien utiliser l'explorateur de fichier windows ???
    Je ne sais pas pour les autre car je n'utilise que IBExpert, quand j'ai besoin d'un script il me le généré pour moi. Si je veux écrire une commande c'est possible. Bref le gain en ergonomie et productivité est tel qu'il ne me viendrait pas à l'idée de revenir à du ISQL.

    ISQL je vais l'utiliser uniquement en dépannage si je n'ai pas accès à mon IBEXPERT (chez un client par exemple).

    Citation Envoyé par Artemus24 Voir le message
    Mais c'est le code sql en entier. Je l'ai réduit à sa plus simple expression. Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    execute block
    as
    begin
    end;
     
    quit;
     
    Appuyez sur une touche pour continuer...
    A mon avis vous avez un problème avec le SET TERM, vous ne l'avez peut être pas mis avant ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Entendons nous bien, Firebird est un système de gestion de données SGBD-R relationnel, Firebird sensu stricto n'a pas de communication directe avec l'utilisateur !

    Plusieurs outils sont disponibles pour interroger les bases de données et par conséquent utiliser Firebird
    cela va de l'outil de base (fourni avec Firebird lors d'une installation standard, pour un déploiement sur un poste Client ils ne sont pas obligatoires) ISQL,GSEC,GBAK,NBACKUP etc... (voir le répertoire bin)
    aux différents outils proposés : Flamerobin, IBExpert, Database WorkBench etc... qui sont tous des GUI (programmes graphiques d'interface utilisateur) avec en fonctionnalités un panel des outils de base (création de base, sql, backups, gestion utilisateurs etc...)

    Delphi lui est un RAD (langage pascal) donc rien à voir avec Firebird si ce n'est que comme d'autres langages on a la possibilité d'interroger des bases de données (Firebird inclus)
    Et comment fais-tu pour savoir qui appartient à quoi ?
    L'expérience et le fait que j'ai déjà répondu à Chekkal plusieurs fois et que donc je connais un peu son "mode de fonctionnement"

    Est-ce franchement utile d'installer 'ibexpert' ? J'ai l'impression que OUI car il y a beaucoup d'exemples.
    c'est se rendre la vie plus facile* que d'utiliser un GUI (IBExpert ou autre), les exemples de ibexpert peuvent s'appliquer à tous car là il ne s'agit pas de ce que fait un GUI particulier mais bien de DDL/PSQL/SQL s'appliquant à Firebird. Cependant tous les GUI ne rende pas toujours les mêmes services selon cette expérience

    * lorsque tu as commencer le sujet Débuter avec Firebird j'ai déjà indiqué que cela serait certainement plus simple mais tu insistais pour utiliser le mode console pour des raisons , AMHA, peu compréhensibles : le mode commande sous windows est au mieux "bof" à moins que tu ne travailles avec Linux ? et encore Flamerobin est aussi disponible pour cet OS !

    pour revenir à isql et execute block je pense que c'est parce qu'il te faut mettre 'SET TERM #' (le caractère # est la pour exemple) afin d'indiquer de ne pas prendre le ; comme fin de ligne à traiter.
    Comme je te l'ai déjà indiqué, je ne suis pas un fan de ISQL pour autant que j'ai pu en juger (test rapide) après avoir valider SET TERM #
    j'ai pu entrer
    SET TERM #
    execute block
    as
    declare variable i integer;
    begin
    end#
    SET TERM ;
    je ne dis pas que je me suis pas emmêler les pinceaux heureusement Ctrl+C m'en a sorti ! à force de faire dans la facilité on oublie les bases (base que je n'ai vraiment pas vraiment acquise de toute façon )

    [edit] grillé par Barbibulle, et pour lui répondre, je dirais que si j'utilise flamerobin en priorité
    c'est dans l'ordre : parce que j'ai des bases sous LINUX, que je n'ai jamais pu me faire à IBExpert (dans sa version lite) , que je me fiche que ce soit en anglais, qu'il est "léger"
    je mettrai peut-être de l'eau dans mon vin (hérésie, sacrilège) si IBExpert permet cette saisie de paramètres dans le EXECUTE BLOCK avec valeurs d'entrées (si tu as le courage d'essayer ...)
    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

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    [edit] grillé par Barbibulle, et pour lui répondre, je dirais que si j'utilise flamerobin en priorité
    c'est dans l'ordre : parce que j'ai des bases sous LINUX, que je n'ai jamais pu me faire à IBExpert (dans sa version lite) , que je me fiche que ce soit en anglais, qu'il est "léger"
    J'utilise IBExpert principalement parceque j'ai il y a déjà plus de 10 ans acheté une licence, puis j'en ai racheté une autre avec un support étendu (c'était une promo tres interessante)...

    Bref à l'époque FlameRobin n'existait pas, il y avait bien des projets gratuits mais nettement moins bien et les autres offres commerciales étaient soit moins bien (moins de fonctionnalités ou des choses qui ne m’intéressaient pas forcément) soit n'étaient pas dédié Firebird/interbase (je voulais quelque chose de natif).

    Je ne pourrais pas comparer avec FlameRobin mais avec IBExpert je ne pourrais pas me passer de
    • Débogage pas à pas des PS
    • Analyse des requetes (stats précise en temps, nombre de records manipulés, index utilisés, plans etc)
    • L'outil pour générer des scripts d'une base de données
    • L'outil pour comparer des bases de données (la structure) (par comparaison de scripts ou des bases directement) et il sort un script pour mettre a jours.
    • Evidemment les éditeurs de données (mais ça c'est je pense commun à tout GUI)
    • Le générateur de jeux de données
    • J'utilise aussi je modélisateur quand je démarre un projet (Après par flemme je ne l'utilise plus...)
    • On peut aussi sur demander à executer des actions (scripts par exemple) lors de l'ouverture/fermeture de certaines base.

    Je l'utilise aussi pour gérer des bases sous Linux (IBExpert est sur mon PC windows et j'interroge via le réseau le serveur firebird sous Linux).

    Je n'utilise pas toutes les fonctionnalités notamment ils ont étendu le langage avec des fonctions script trés puissantes (mais du coup qui ne marchent que dans IBExpert ou IBEScript (un exe/dll pour executer ces scripts sans installer IBExpert)).
    Les IBEBlock.

    Citation Envoyé par SergioMaster Voir le message
    je mettrai peut-être de l'eau dans mon vin (hérésie, sacrilège) si IBExpert permet cette saisie de paramètres dans le EXECUTE BLOCK avec valeurs d'entrées (si tu as le courage d'essayer ...)
    Je vais tester quand je serai au bureau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    execute block (smallest int = ?, largest int = ?)
    returns (number int, square bigint, cube bigint, fourth bigint)
    as
    begin
      number = smallest;
      while (number <= largest) do
      begin
        square = number * number;
        cube   = number * square;
        fourth = number * cube;
        suspend;
        number = number + 1;
      end
    end
    par exemple ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Barbibulle
    par exemple ?
    très bon exemple je me demande où tu as pu le trouver
    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

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 245
    Points : 534
    Points
    534
    Par défaut
    Bonjour,

    Avec IBExpert:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    execute block (smallest int = :premier, largest int = :dernier)
    returns (number int, square bigint, cube bigint, fourth bigint)
    as
    begin
      number = smallest;
      while (number <= largest) do
      begin
        square = number * number;
        cube   = number * square;
        fourth = number * cube;
        suspend;
        number = number + 1;
      end
    end
    fonctionne mais il faut identifier les paramètres d'entrée par ":UnNom" au lieu de "?".
    Tout ça dépend des composants utilisés pour le développement des GUI.
    Sous Delphi 7 les composants IBExpress d'origine ne peuvent exécuter ce type de requête parce que la recherche des paramètres (parse) identifié par le symbole ":" au début du mot se poursuit jusqu'à la fin du texte. Ils identifient donc les variables internes au corps de la procédure comme des paramètres.
    Les UIB ont mieux assimilés les évolutions de Firebird en arrêtant la recherche des paramètres au "begin".

    André

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Merci, un autre adepte d'IBExpert

  9. #9
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Vous avez eu raison de déplacer mes messages dans un autre sujet afin de ne pas le polluer avec mes questions.

    Citation Envoyé par Barbibulle
    Non Try except c'est du pascal objet dont le plus connu est Delphi. C'est donc un langage de développement.
    Ok pour le pascal objet de chez Delphi. Je connaissais aussi cette instruction mais en C++.
    Ce qui m'a perturbé, c'est que j'ai cru que c'était une commande de 'isql'.

    Citation Envoyé par Barbibulle
    Lorsque vous devez copier des fichiers de manière exceptionnelle est-ce que vous trouver plus rapide et pratique de lancer une fenêtre DOS et utiliser la commande ...
    Oui, sauf que je ne procède jamais ainsi. Ce que je fais, c'est créer un script réutilisable.
    Et ce script, dans le cas de FireBird, c'est pour créer une base de données, avec des tables, des inserts, des procédures ...

    Citation Envoyé par Barbibulle
    ou bien utiliser l'explorateur de fichier windows ???
    Non plus. Je crée un environnement de travail pour faire des tests. Donc un script va créer ce dont j'ai besoin pour tester sous FireBird.
    En fait, je fais à la main ce que fait IBexpert.

    Citation Envoyé par Barbibulle
    Je ne sais pas pour les autre car je n'utilise que IBExpert, quand j'ai besoin d'un script il me le généré pour moi. Si je veux écrire une commande c'est possible. Bref le gain en ergonomie et productivité est tel qu'il ne me viendrait pas à l'idée de revenir à du ISQL.
    Je viens du monde du gros système, et j'ai toujours travaillé avec des scripts. Donc c'est juste une question d'habitude.
    Je te rassure, je ne vais pas réinventer le fil à couper le beurre à chaque fois que j'en ai besoin.
    Je reprends un script que j'ai déjà fait au préalable et je l'adapte à mes besoins.
    Et comme je conserve tout ce que je fais, cela produit une bibliothèque de scripts et d'astuces en tout genre que j'enrichie au fur et à mesure de mes besoins.

    Citation Envoyé par Barbibulle
    ISQL je vais l'utiliser uniquement en dépannage si je n'ai pas accès à mon IBEXPERT (chez un client par exemple).
    D'accord avec vous, mais je ne suis pas dans un contexte de productivité où l'on m'impose des contraintes d'outils et de temps.
    Je suis à la retraite et je me forme sur des SGBD qui me semblent intéressants. Et j'ai tout le temps pour tester.

    Citation Envoyé par Barbibulle
    A mon avis vous avez un problème avec le SET TERM, vous ne l'avez peut être pas mis avant ?
    C'est ce que j'avais fait. Et j'ai bien consulté les explications que voici : http://www.firebirdsql.org/refdocs/l...execblock.html

    Citation Envoyé par SergioMaster
    ISQL,GSEC,GBAK,NBACKUP etc... (voir le répertoire bin)
    Dans un premier temps, ce sont ces outils que je vais utiliser car se sont ceux là qui sont toujours disponibles sous FireBird.

    Citation Envoyé par SergioMaster
    c'est se rendre la vie plus facile* que d'utiliser un GUI (IBExpert ou autre), les exemples de ibexpert peuvent s'appliquer à tous car là il ne s'agit pas de ce que fait un GUI particulier mais bien de DDL/PSQL/SQL s'appliquant à Firebird.
    Il y a matière à discussion sur cette approche. Je pense que l'outil est complètement secondaire. Ce qui est important, c'est de connaitre le langage de base du SGBD, soit le DML et le DDL.
    Maintenant, si cela te fait gagner du temps, je suis pour. Mais si tu te sers de ces utilitaires pour éviter d'apprendre à te servir des DML et DDl, je suis contre.
    La tendance actuellement est de prendre de la distance avec le code et de se servir de ce que l'on nomme des générateurs de code. Cela fait gagner du temps (encore que ?) mais le développeur ne connait plus rien à la programmation. Tout ce qui lui importe, c'est que cela doit fonctionner. Le reste, il s'en fout !

    Citation Envoyé par SergioMaster
    Cependant tous les GUI ne rende pas toujours les mêmes services selon cette expérience
    D'où l'intérêt de travailler avec les outils de bases du SGBD car ceux-ci répondent bien au besoin de l'utilisateur.

    Citation Envoyé par SergioMaster
    * lorsque tu as commencer le sujet Débuter avec Firebird j'ai déjà indiqué que cela serait certainement plus simple mais tu insistais pour utiliser le mode console pour des raisons , AMHA, peu compréhensibles : le mode commande sous windows est au mieux "bof" à moins que tu ne travailles avec Linux ? et encore Flamerobin est aussi disponible pour cet OS !
    Je vais essayer d'être un peu plus clair.

    1) je préfère travailler avec les outils de base du SGBD.
    2) afin de conserver mes tests, je désire créer un script.
    3) pour chaque test, j'aurai un répertoire contenant l'environnement du test que je fais.
    4) d'où le fait de travailler en ligne de commande. Je crois que c'est le terme "ligne de commande" qui vous perturbe.

    Voici mon batch qui va appeler 'isql' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
     
    chcp 1252 > nul
     
    set PATH=.;%WAMPSERVER%\bin\filebird\courant\bin\;%PATH%
     
    SET FIC=%~nx0
    SET FIC=%FIC:bat=sql%
     
    isql  -charset win1252  -echo  -input %FIC%  -quiet  -password 'masterkey'  -role RDB$ADMIN  -user 'sysdba'  'Data/Base.fdb'
     
    @echo.
    pause
    exit
    Le nom du fichier du batch sera le même nom que celui du script.
    Exemple : 'test.bat' pour le batch et 'test.sql' pour le script.

    Dans le script, je mets ce dont j'ai besoin de tester avec 'isql'. Exemple :
    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
    18
    SET TERM #;
     
    execute block
    as
    declare variable i int = 4;
    begin
      while (i < 10) do
      begin
        insert into test (id, lib) values (: i, 'un');
        i = i + 1;
      end
    end#
     
    SET TERM ;#
     
    select * from test;
     
    quit;
    J'ai pas bien compris, mais aujourd'hui, le code ci-dessus fonctionne correctement.

    Et voici le résultat à l'exécution :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    SET TERM #;
     
    execute block
    as
    declare variable i int = 4;
    begin
      while (i < 10) do
      begin
        insert into test (id, lib) values (: i, 'un');
        i = i + 1;
      end
    end#
     
    SET TERM ;#
     
    select * from test;
     
              ID LIB
    ============ ====================
               1 un
               2 deux
               3 trois
               4 un
               5 un
               6 un
               7 un
               8 un
               9 un
     
     
    quit;
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    C'est une approche différente.

    Moi je préfère qu'IBExpert me génère mes scripts.
    Le confort et la productivité également n'ont rien à voir.
    Et il y a des choses qu'on ne peut pas faire avec ISQL comme par exemple déboguer pas à pas une procedure.
    Ou des choses qui vont être très difficile car pas prévu par une commande dans firebird mais en triturant les tables system c'est réalisable. IBExpert sait faire ce genre de chose pour moi. D'autant que selon la version de Firebird la façon de faire peut changer (IBExpert le sait....)

    Et je ne parle pas quand on doit identifier puis modifier des données d'une table je serai plus rapide avec IBExpert.

    La bibliothèque de millier de scripts que vous allez vous constituer, moi je l'ai achetée elle s'appelle IBExpert

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Artemus24
    Mais si tu te sers de ces utilitaires pour éviter d'apprendre à te servir des DML et DDL
    ce n'est absolument pas le cas je te rassure j'utilise simplement les moyens les plus rapides.
    Lancer le mode commande, isql, se connecter, faire la modif ou lancer le GUI, se connecter faire la modif c'est khalkhal (prononcer ralral, au Maroc on ne dit pas kifkif )

    moi aussi je viens des Gros et Moyens systèmes IBM et UNIX (expérience qui date) mais contrairement à Barbibulle
    Le confort et la productivité
    sont pour moi une priorité (n'étant pas encore à la retraite ) sans parler de la documentation facilement générée

    La bibliothèque de millier de scripts
    pour moi c'est l'historique (gardé par le GUI) de ce que je fait et/ou les fichiers Scripts SQL que je transmet. Que reste t-il : la gestion des utilisateurs (GSEC) encore que depuis 2.5 c'est possible par SQL, les backup GBAK les (bons) outils GUI le permette mais quelquefois oui on a besoin de l'outil en lignes de commandes : pour un .bat ou shell selon l'OS , pour un restore un peu particulier (je pense par exemple à l'option -fix_fss_metadata)
    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

  12. #12
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Citation Envoyé par Barbibulle
    La bibliothèque de millier de scripts que vous allez vous constituer, moi je l'ai achetée elle s'appelle IBExpert
    N'exagérez pas ! Je n'ai qu'une cinquantaine de scripts modèles que je perfectionne à chaque nouvelle tentative, sous MySql.
    Et sur les forums, ce sont souvent les mêmes questions qui reviennent mais pas toujours formulées de la même façon.

    Une des questions fréquentes, sous MySql, est la gestion des doublons.
    On propose un gros select qui permet de les identifier, puis un delete afin de les supprimer.
    Je propose alors la création d'un index, qui sous MySql, permet de supprimer les doublons. Après, on peut supprimer cet index qui ne sert plus à rien.

    Voilà à quoi sert ma grosse bibliothèque, de ne pas réinventer la solution à chaque fois qu'elle se présente à nouveau.

    Je procède toujours de cette façon (C, C++, HTML, CSS, PHP, JAVASCRIPT ...), peut-être afin de ne pas avoir une mémoire trop volatile.

    Je passerai ultérieurement peut-être à IBexpert.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Execute block , qui bloque
    Par SergioMaster dans le forum SQL
    Réponses: 1
    Dernier message: 02/12/2014, 09h07
  2. CREATE VIEW à partir de EXECUTE BLOCK.
    Par Nono23 dans le forum SQL
    Réponses: 6
    Dernier message: 05/04/2011, 16h34
  3. procedure EXECUTE BLOCK et firebird 2
    Par jupierre dans le forum Outils
    Réponses: 2
    Dernier message: 29/11/2006, 11h34

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