Exception relevé dans une requête [Résolu]

Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour,

La requête

Public Sub InsertPlayer(ByVal FamillyName As String)

Dim command As New OleDbCommand
command.Connection = Connection
command.CommandText = "INSERT INTO Player (Name) VALUES ([?]);"
command.Parameters.Add("?", OleDbType.BSTR).Value = FamillyName
Try
command.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub


J'ai crée un setup d'installation qui installe le shorcut exe dans le user's desktop. La bdd (mdb) est placé dans un folder nommé auxfile crée lors de l'installation.

le problème surgit si j'installe le fichier msi dans le folder C:\Program Files (x86) ou C:\Program Files ;
L'installation se fait correctement mais ensuite je lance l'exe et la une erreur
Si j'installe dans un autre folder aucun problème
vraiment dans le brouillard

merci

5 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour,
Avec certains OS, l'installation dans le répertoire C:\Program Files est protégée et nécessite de se faire "en tant qu'administrateur"
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonjour

Oui et Depuis Vista, le dossier Program files (son homologue Program Files (x86) ), ses dossiers et les fichiers y étant sont en lecture seule en exécution normale

Est que je peux forcer l'installation dans un dossier fixe que je crée
pendant l'installation ex C:\Jeux
ou faut il laisser libre choix au client ?
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Il y a aussi la solution de mettre le fichier de base de données dans le dossier %appdata% de l'utilisateur, mais cela fera que chaque utilisateur aura un fichier différent.

Forcer le dossier n'est pas toujours bon, certaines personnes (certes rare) peuvent avoir le disque système en D: et non en C:.

A toi de voir.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour, NHenry,

certaines personnes (certes rare) peuvent avoir le disque système en D: et non en C:.

Sous VBH6, j'utilise par prudence la fonction Environ
L'équivalent VB.Net semble être ===>>
https://msdn.microsoft.com/fr-fr/library/system.environment%28v=vs.110%29.aspx
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonsoir
le code de la db

 Dim path As String
path = Application.StartupPath & "\auxfile\db1.mdb"
Dim base As String = "provider=microsoft.jet.oledb.4.0;data source=" & path

si je place la bdd dans %appdata% que faut il écrire
path = ?
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
j'ai trouvé

  path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)