1. #1
    Membre averti Avatar de cantador
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    mars 2006
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mars 2006
    Messages : 489
    Points : 377
    Points
    377

    Par défaut Requête INSERT INTO en mode transactionnel

    Bonjour,

    configuration : Delphi 7 + Firebird 2.5.7.27050 sous seven 32 bits
    j'ai pour habitude de coder en delphi mes ajouts dans les tables (en réseau)
    en mode transactionnel, en utilisant STARTTRANSACTION, COMMIT et ROLLBACK
    j'aimerais faire la même chose mais en SQL, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SET TRANSACTION;
    SELECT INSERT INTO etc.
    COMMIT;
    etc.
    en considérant, que ROLLBACK suit une erreur d'enregistrement et non dans le cadre d'un SAVE POINT.
    je n'ai pas trouvé d'exemple clair en SQL montrant l'utilisation des trois commandes, TRANSACTION, COMMIT et ROLLBACK

    existe t-il un "IF SUCCESS" dans Firebird ?

    merci de votre aide

  2. #2
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 334
    Points : 40 143
    Points
    40 143
    Billets dans le blog
    1

    Par défaut

    Une commande SQL unitaire (INSERT, UPDATE, DELETE....) est une transaction à part entière. Soit elle réussie et les données sont persistantes, soit elle part en erreur et donc toutes les modifications de la commande sont automatiquement annulée. Vous n'avez donc rien à faire.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Membre averti Avatar de cantador
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    mars 2006
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mars 2006
    Messages : 489
    Points : 377
    Points
    377

    Par défaut

    merci SQLpro

    mais à quoi sert le SET TRANSACTION ?

    https://firebirdsql.org/file/documen...transachttp://

  4. #4
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 334
    Points : 40 143
    Points
    40 143
    Billets dans le blog
    1

    Par défaut

    À définir le niveau d’isolation, c'est à dire une plus ou moins grande "porosité" des informations en cours de modification entre la transaction et les autres utilisateurs.

    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/isolation-transaction/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  5. #5
    Membre averti Avatar de cantador
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    mars 2006
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mars 2006
    Messages : 489
    Points : 377
    Points
    377

    Par défaut

    désolé pour le retard..
    on peut supposer que l'article concernant SQL Server peut s'appliquer
    également à Firebird..
    Cela dit, j'ai bien noté la portée du texte.
    en ce qui me concerne, je traite le niveau d'isolation de mes transactions
    en paramétrant mes composants.
    merci SQLPro pour cette information.

  6. #6
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 334
    Points : 40 143
    Points
    40 143
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par cantador Voir le message
    ...
    on peut supposer que l'article concernant SQL Server peut s'appliquer
    également à Firebird..
    Ceci fait partie intégrante de la norme SQL. Donc on peut supposer que oui. Mais attention, tous les SGBDR n'implémente pas tous les niveaux d’isolation de la norme et certains (SQL Server) en rajoute....
    Cela dit, j'ai bien noté la portée du texte.
    en ce qui me concerne, je traite le niveau d'isolation de mes transactions en paramétrant mes composants.
    Ce qui est bplutôt la bonne chose à faire... Cepandant, vous devriez plutôt utiliser autant que faire ce peu, des procédures stockées !

    merci SQLPro pour cette information.
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

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

Discussions similaires

  1. la requête INSERT INTO. . . SELECT
    Par asma_tn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/09/2007, 18h01
  2. Procédure Form_Open,problème de requête Insert into
    Par Averroes dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/08/2007, 22h49
  3. Pb requète INSERT INTO
    Par yannick9 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/08/2007, 11h37
  4. Requête INSERT INTO SELECT
    Par unix27 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 11/02/2007, 01h36
  5. Réponses: 3
    Dernier message: 06/03/2006, 00h38

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