Emplacement base de donées

sylvincent Messages postés 9 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 25 janvier 2005 - 22 déc. 2004 à 17:06
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 - 22 déc. 2004 à 18:24
Bonjour à tous,
J'ai développé un petit logiciel en vb6, mais j'ai un soucis avec l'emplacement d'une base de données. Comment fait-on pour que le databasename contienne l'adresse de l'emplacement du programme apres l'empaquetage et surtout au moment de l'installation?
Merci.

4 réponses

addamsmercredi Messages postés 121 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 27 juillet 2006
22 déc. 2004 à 17:14
Moi ce que je ferais à ta place, c'est que je mettrais la base de donnée dans le même répertoire que l'application et lorsque tu l'ouvres tu utilise App.Path
Par exemple :
labase = OpenDataBase (App.Path & "\labase.mdb")
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
22 déc. 2004 à 17:31
labout

ou alors mettre la chaine de connection dans un fichier ini
puis lire avec la fonction de l'api GetPrivateProfileString
@+
0
sylvincent Messages postés 9 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 25 janvier 2005
22 déc. 2004 à 18:08
Salut
Excuse moi mais je suis un peu novice,
peux tu appronfondir ta réponse...
Merci
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
22 déc. 2004 à 18:24
labout

L'adresse d'une base de données peut au cours de la vie d'un logiciel changer d'adresse. En conséquence si dans ton programme l'adresse de ta base est en dur cela ne marche plus.
Donc on met l'adresse si c'est de l'accès dao ou la chaine de connection si c'est de l'ado.

Pour lire un fichier ini est constitue comme ceci:
[Base]
adresse=s:\database\

ou base est la section
adresse est une clé

La fonction de l'api à déclarer en tête de module est

Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" (ByVal lpApplicationName
As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Public sadresse as string

ensuite pour lire

dim n as integer
sadresse = String(500, 0)
n = GetPrivateProfileString("base", "adresse", "", _
sadresse, Len(sadresse), _
App.Path & "\monfichier.ini")
sAdresse = left(sAdresse, n)

monfichier.ini est le nom donné au fichier ini

Donc rien ne t'oblige à mettre la base dans le pack Install
ni de l'avoir a une adresse précise.

Nb le fichier ini s'ouvre avec le bloc note

@+
0
Rejoignez-nous