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

VB 6 et antérieur Discussion :

OpenOffice Base et VB6


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut OpenOffice Base et VB6
    Bonjour j'ai developpé une application VB en utilisant OpenOffice Base.
    La connection et l'insert dans la base fonctionna parfaitement...
    Par contre quand mon application VB est terminée (je reconnais que je ne fais aucun traitement de fermeture de base ...) Il subsiste un fichier <nom de base>.lck (qui est en cours d'utiisation par des process : soffice.bin)

    Si je relance mon application : Je trouve toutes mes transaction ...

    Au redémarrage de mon ordinateur : L'ensemble des transactions sur ma base (insert, update) sont disparues.

    Ma question : Comment arreêter proprement ma connection à la base OpenOffice dans mon programme VB

    Voici un extrait de mon code :

    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
     '-- Ouverture BAse
      Dim oDB As Object, oBase As Object
      Dim Fichier As String
      Dim oServiceManager As Object, CreateUnoService As Object
      Fichier = "file:///C:/base/mabase.odb"
     
      Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
      Set CreateUnoService = oServiceManager.createInstance("com.sun.star.sdb.DatabaseContext")
     
      Set oDB = CreateUnoService.getByName(Fichier)
      Set oBase = oDB.getConnection("", "")
      Set oStatement = oBase.createStatement
     
    '--- Insert dans Table
      Requete = "insert into ""articles"" ""sujet"", ""texte"") values ('" +  I_SUJET.Text + "','" + I_TEXTE.Text) + "')"
    Set oRequete = oStatement.ExecuteQuery(Requete)

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    pour refermer la requete et la connection, tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        oRequete.Close
        oStatement.Close

    par contre il est possible qu'il apparaisse toujours quelque chose dans le Proccess. Cela ne semble pas genant si on suit les remarques de Bernard Marcelly (le grand manitou OOo) à la fin de ce message

    http://www.mail-archive.com/prog@fr..../msg00993.html


    bonne journée
    michel

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Ne fonctionne pas ...
    J'avais deja essaye ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        oRequete.Close
        oStatement.Close
    Mais rien n'y fait ...

    Autre idée ?

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par phiric
    J'avais deja essaye ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        oRequete.Close
        oStatement.Close
    Mais rien n'y fait ...

    Autre idée ?
    j'ai aussi testé ce code .. le fichier .lck, n'est pas effacé.. mais les données dans la base sont bien mise à jour .. non ..?

    il faut rajouter un oBase.close...et le fichier .lck disparait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       oRequete.Close
        oStatement.Close
        oBase.Close

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    En ajoutant ce code, il y a une erreur de SYNTAXE sur Obase.close
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        oRequete.Close
        oStatement.Close
        oBase.Close
    Complément :
    - Les mises a jour sont effectivement bien prises en compte : On redémarre l'application et on voir les mises à jour
    - MAIS si on REDEMARRE le PC et que l'on redemarre l'application : le mises à jour disparaissent


    [/QUOTE]

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Rectificatif : Ce code fonctionne parfaitement !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        oRequete.Close
        oStatement.Close
        oBase.Close
    le fichier lck disparait et Les mises a jour sont effectivement bien prises en compte : On redémarre l'application et on voir les mises à jour, si on REDEMARRE le PC et que l'on redemarre l'application : le mises à jour sont toujours la ...


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

Discussions similaires

  1. [OpenOffice Base] Connaitriez-vous un bon tutoriel ?
    Par Mut dans le forum Autres SGBD
    Réponses: 9
    Dernier message: 06/05/2010, 16h02
  2. Sqlite sous OpenOffice (Base)
    Par Guillaume M dans le forum SQLite
    Réponses: 4
    Dernier message: 10/07/2008, 00h53
  3. MySQL et OpenOffice Base
    Par Zarvox dans le forum Débuter
    Réponses: 0
    Dernier message: 06/03/2008, 14h38
  4. [OpenOffice]Base - DML
    Par Kcirtap dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 22/12/2005, 15h38
  5. Vb+openoffice base
    Par Maxbrad dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/11/2005, 21h09

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