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.NET Discussion :

L'opération doit utiliser une requête qui peut être mise à jour


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut L'opération doit utiliser une requête qui peut être mise à jour
    Bonsoir


    J'ai une appliquation windows form App utilisant une bd access quand j'execute le prog je n'ai aucune erreur.

    Après avoir crée un setup et deployé sur mon ordi (pour tester) quand je lance l'appliquation j'obtiens différentes erreurs
    1 L'opération doit utiliser une requête qui peut être mise à jour
    2 Impossible de supprimer dans les tables spécifiées
    Merci
      0  0

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonsoir,

    L'anomalie que tu relates me fait penser à une DB "verrouillée".
    Au cours de tes manipulations, n'as-tu pas laissé ta DB ouverte par ailleurs, par le projet en cours dans Visual Studio par exemple ?

    ...
      0  0

  3. #3
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Bonjour

    J'ai trouvé la cause mais pas le remède.
    Ce n'est pas à cause des requetes d'ailleurs quand je lance l'appliquation avec le visual il n'y a aucun problème mais si je fais un setup et le déploie il va installer la db (fichier mdb)
    dans le dossier crée par le setup et la la db est read only d'où la le message d'erreur.
      0  0

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Je confirme donc que ta DB est verrouillée ...
    N'y a-t-il pas un fichier DB avec l'extension .LDB qui suivrait dans le setup ?
    Si ce fichier existe, il faut l'enlever avant de faire le Setup. Dans les dossiers cibles, si le fichier existe, l'enlever devrait permettre le bon fonctionnement.

    A toutes fins utiles, tu peux vérifier que ton application possède bien les droits d'écrire dans le dossier cible, mais je crois peu à cette hypothèse du fait que ton programme d'installation a pu s'exécuter ...

    A bientôt ...
      0  0

  5. #5
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    ce n'est pas la db qui est veroulllé
    A toutes fins utiles, tu peux vérifier que ton application possède bien les droits d'écrire dans le dossier cible, mais je crois peu à cette hypothèse du fait que ton programme d'installation a pu s'exécuter ...
    et oui

    En continuant les recherches la raison est due à dans quel dossier l'appliquation est installée.
    Par défault c'est c\programfiles(x86)\blabla\
    et justement à cette location la db est en lecture seulement si j' installle autre part il n'y pas de problèmes.

    dans le code la connection avec la db
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    path = Application.StartupPath & "\db1.mdb"
               Dim base As String = "provider=microsoft.jet.oledb.4.0;data source=" & path
              If Connection.State = ConnectionState.Open Then
                Exit Sub
            End If
            Connection.ConnectionString = base
    Pour cette raison la db doit etre dans le meme dossier de l'application
      0  0

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    OK, c'est donc une question de droits sur le dossier de l'application.

    Au cours de l'installation de l'appli, le Setup demande si l'installation est utilisable par tous ou pas (± si tout le monde à droit ou pas) : bien sûr qu'il faut répondre OUI.

    Par ailleurs, tu peux dans ton code copier la DB dans un autre dossier créé pour cela dans un dossier accessible par tous (par exemple, le dossier Documents de All Users, ou de Default). Rien ne t'oblige à path = Application.StartupPath & "\db1.mdb". A savoir encore qu'un simple attribut fichier ReadOnly peut être changé par le code. A vérifer encore s'il n'y a pas un antivirus qui verrait ton appli comme Malware.
    Et encore, que se passe-t-il si tu lances ton appli loger en Administrateur de l'ordi, ou l'exécuter en tant qu'administrateur ?

    Mais pour être sûr de la question droit : avec le même login que l’utilisateur de ton application, peux-tu ouvrir et modifier la DB dans ce dossier c\programfiles(x86)\blabla\ avec Access ?
    Et après l'avoir modifiée et quitté Access, ton application ne fonctionne toujours pas ?

    Enfin, si la question de droit se confirme, je ne peux rien faire. Dans le cas contraire, n'est pas possible que tu envoies une version (simplifiée) de ton application avec son Setup ? Je pourrais tester ...
    Cette version peut aussi être déposée sur Dropbox (par exemple) et tu peux envoyer le lien par message privé,si tu ne veux pas "publier" ton appli.
      0  0

  7. #7
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Par ailleurs, tu peux dans ton code copier la DB dans un autre dossier créé pour cela dans un dossier accessible par tous
    ben oui la meilleur solution

    Mais pour être sûr de la question droit : avec le même login que l’utilisateur de ton application, peux-tu ouvrir et modifier la DB dans ce dossier c\programfiles(x86)\blabla\ avec Access ?
    si je peux ouvrir mais tu as en titre en lecture seulement. Read-only This database opens for read-only You can only change data from linked tables

    Des qu'on copie dans le dossier c\programfiles(x86) la db est en lecture seulement j'ai meme verifié en copier coller un fichier mdb
    localisé dans un autre dossier.

    Merci de ton aide
      0  0

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Désolé de n'avoir pu faire mieux ...

    Bon week-end
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/02/2010, 07h41
  2. Réponses: 0
    Dernier message: 17/01/2010, 17h42
  3. Réponses: 1
    Dernier message: 18/12/2009, 10h29
  4. Réponses: 1
    Dernier message: 23/05/2008, 11h45
  5. Réponses: 7
    Dernier message: 29/04/2008, 12h16

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