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

Delphi Discussion :

Base de données Access sur un CD


Sujet :

Delphi

  1. #1
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut Base de données Access sur un CD
    Bonjour

    Je développe une application en Delphi 7 qui est destinée à être exécutée à partir d'un CD (pas besoin d'installation ou de copie sur le disque dur).
    Ma base de données est en Microsoft Access 2000 et elle est placée avec l'application, sur le CD.

    Mon problème est que quand je tente d'exécuter l'application à partir du CD, j'ai le message d'erreur suivant:
    "Impossible de verrouiller le fichier" (en anglais "Could not lock file").
    L'erreur survient lors de la connexion à la base de données.
    Je crois que cette erreur est causée par le fait qu'il n'est pas possible d'écrire sur le CD. (Je n'ai pas cette erreur quand j'exécute l'application sur mon ordinateur)
    Je ne désire pas faire d'Update dans la base de données. Seulement de la lecture d'enregistrements.
    Dans mon objet "TADOConnection", la propriété "Mode" est à "cmRead".

    Avez-vous une idée pour corriger/contourner ce problème?

    Merci beaucoup

  2. #2
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    A l'ouverture d'une base access, il ya création d'un fichier dont le nom et l'extension sont
    LENOMDETABASE.LDB
    Il est normal que ta base ne marche pas car le fichier n'arrive pas à se créer sur le cd.

  3. #3
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par Frank
    A l'ouverture d'une base access, il ya création d'un fichier dont le nom et l'extension sont

    Il est normal que ta base ne marche pas car le fichier n'arrive pas à se créer sur le cd.
    Et est-il possible d'empêcher la création de ce fichier de locks?
    Ou en fait, de le rendre non-nécessaire?
    Car il n'y a que de la lecture d'enregistrements, donc le système n'a pas à créer de locks sur les enregistrements.

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    celà doit certainement être possible, car avec Ms Access, je peux bien ouvrir en lecture seule mes fichiers mdb gravés sur un CD. ou alors Access crée une copie locale sur le disque dur ? à vérifier...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    a tu essayé ;

  6. #6
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par evarisnea

    celà doit certainement être possible, car avec Ms Access, je peux bien ouvrir en lecture seule mes fichiers mdb gravés sur un CD. ou alors Access crée une copie locale sur le disque dur ? à vérifier...
    Donc, il reste seulement à trouver comment....
    J'aimerais ne pas avoir à copier de fichiers sur le disque dur, juste pour garder le tout sur le CD.


    Citation Envoyé par didier2020
    a tu essayé ;
    Je n'utilise pas de TTable. J'utilise l'objet TADOQuery.

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Essaie de mettre LockType à ltReadOnly, je pense que cela enlevera la création du fichier supplémentaire pour la base de données.

  8. #8
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par Malatar
    Essaie de mettre LockType à ltReadOnly, je pense que cela enlevera la création du fichier supplémentaire pour la base de données.
    Le problème se passe lors du ADOConnection1.Open();. Le TADOQuery n'a pas d'effet.
    Pour faire le test, j'ai créé une form avec seulement un ADOConnection et un bouton.
    Ces 2 lignes de code sont exécutées en cliquant sur le bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ADOConnectionAlbum.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=H:\database.mdb;Mode=Read;Persist Security Info=False;Jet OLEDB:Database Password=MyPassword';
    ADOConnectionAlbum.Open();
    Et j'ai l'erreur.
    Mon lecteur H est un lecteur CD.

  9. #9
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    une choses à tester :

    Rajoute dans ta chaine de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Mabase.mdb;Persist Security Info=False;Jet OLEDB:Database Locking Mode=0

  10. #10
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par Malatar
    une choses à tester :

    Rajoute dans ta chaine de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Mabase.mdb;Persist Security Info=False;Jet OLEDB:Database Locking Mode=0
    Ça semblait prometteur, mais l'erreur survient quand même.

  11. #11
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Question bête ^^
    Est ce que ton composant AdoConnection a sa propriété Connected à False dans Delphi ? (pas en runtime, mais en designtime)

  12. #12
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par Malatar
    Question bête ^^
    Est ce que ton composant AdoConnection a sa propriété Connected à False dans Delphi ? (pas en runtime, mais en designtime)
    Dans mon objet TADOConnection, la propriété "Connected" est à False au design time.

  13. #13
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    j'ai prie la pein de graver une base de données sur un CD et sa marche
    avec la connection string suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Logiciels\PARC idir\Parc.mdb;Mode=Read|Share Deny Read|Share Deny Write;Persist Security Info=False
    j'ai trouvez aussi ce lien qui donne quelque info.
    ici

  14. #14
    Membre habitué Avatar de thor22
    Inscrit en
    Août 2004
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2004
    Messages : 150
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par aityahia
    j'ai prie la pein de graver une base de données sur un CD et sa marche
    avec la connection string suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Logiciels\PARC idir\Parc.mdb;Mode=Read|Share Deny Read|Share Deny Write;Persist Security Info=False
    j'ai trouvez aussi ce lien qui donne quelque info.
    ici
    Ça marche!
    La partie importante est "Mode=Read|Share Exclusive" dans la chaîne de connexion.

    Merci aityahia!
    Et merci à tous ceux qui ont tenté de m'aider!

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

Discussions similaires

  1. [AC-2007] base de données access sur serveur
    Par meliemelo dans le forum Access
    Réponses: 2
    Dernier message: 28/07/2009, 12h07
  2. Base de données Access sur un site internet
    Par Flo0§ dans le forum Modélisation
    Réponses: 4
    Dernier message: 27/03/2008, 14h49
  3. Base de données access sur internet
    Par slider7 dans le forum Modélisation
    Réponses: 4
    Dernier message: 02/10/2007, 13h53
  4. [connexion base de données access sur un serveur]
    Par t1marlartiste dans le forum Access
    Réponses: 1
    Dernier message: 09/07/2007, 17h23
  5. Base de données Access sur un CD
    Par mamou30 dans le forum Bases de données
    Réponses: 1
    Dernier message: 18/06/2007, 12h15

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