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 :

Suppression d'une vue impossible


Sujet :

SQL Firebird

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut Suppression d'une vue impossible
    bonjour,

    depuis que je suis passé de firebird 1.5 à la version 2.0.1, j'ai un soucis concernant la suppression des vues.
    dans mon programme, je crée à certains moments des vues dynamiquement (par programmation, donc).
    une fois le résultat de la vue exploité, je supprime la vue temporaire.
    avec la version 1.5 de firebird, tout fonctionne.
    avec la dernière version, impossible de supprimer la vue si je l'ai exploitée (c.a.d. ouverture et fermeture au moins une fois).
    dans ce cas, j'obtiens un message d'erreur disant que l'objet est en cours d'utilisation !!! (alors que je suis sur que tout est fermé, y compris la transaction encadrant la lecture des données).

    une idée du problème ?

    merci de votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    le problème est simple, tu as une transaction utilisant la vue qui n'est pas fermée
    à toi de trouver laquelle

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut
    pas si sûr !

    voici le script (pas très optimisé mais parlant pour le test) :

    1. je démarre une transaction
    2. je crée la vue
    3. je valide la transaction
    4. je démarre une nouvelle transaction
    5. j'exécute une requête (un simple SELECT *) basée sur la vue précédemment créée
    6. je valide la transaction
    7. je démarre une troisième transaction
    8. je détruis la vue
    9. je valide la transaction -> ERREUR : la vue ne peut être supprimée car utilisée !!!

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    et bien je t'assures que si
    quelque part dans ton appli où une de tes applis, la vue est active d'une manière ou d'une autre

    la preuve :
    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
    Database:  /home/firebird/db/testcollate.fdb, User: SYSDBA
    SQL> set autoddl off;
    SQL> show table;
           TESTCOLLATE                            TEST_UQ
     
    SQL> show view;
    There are no views in this database
    SQL> show table testcollate;
    NOM_FR                          VARCHAR(30) Nullable
    SQL> create view v1 as select nom_fr from testcollate;
    SQL> commit;
    SQL> select first 1 nom_fr from v1;
     
    NOM_FR
    ==============================
    aei
     
    SQL> commit;
    SQL> show view;
           V1
    SQL> drop view v1;
    SQL> commit;
    SQL> show view;
    There are no views in this database
    SQL>
    Ceci dit, je ne suis pas persuadé du bien fondé de création destruction de vue dans une appli, mais c'est un autre débat

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut
    Autant pour moi.
    Merci pour cette réponse pertinente !!!
    Comme je me prends la tête avec ça depuis un moment, je vais peut être trouver une autre solution, voire même eviter la création dynamique de la vue.
    Merci de ton aide.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/07/2009, 11h53
  2. [SP-2007] Suppression d'une solution impossible
    Par aityahia dans le forum SharePoint
    Réponses: 1
    Dernier message: 28/05/2009, 11h40
  3. Suppression d'une vue impossible
    Par arfany dans le forum Administration
    Réponses: 3
    Dernier message: 16/03/2009, 10h33
  4. Suppression d'une vue dans un CSplitterWnd
    Par elecstr dans le forum MFC
    Réponses: 3
    Dernier message: 10/06/2007, 21h59
  5. Réponses: 1
    Dernier message: 23/08/2006, 20h11

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