Connexion à une base de donnees

cs_delphi Messages postés 18 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 12 septembre 2002 - 16 avril 2002 à 17:49
cs_delphi Messages postés 18 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 12 septembre 2002 - 17 avril 2002 à 17:30
je veux pouvoir ouvrir une bd soit access soit dbase
je vais chercher mon chemin de ma base dans ma form
mon code est ainsi

dim mabase as adod.connection
dim chemin as string

set mabase = nothing
set mabase = createobject ("adod.connection")
mabase.open Provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & chemin & ";"

donc dans chemin j'ai mon repertoire cela marche pour les bd mdb mais si je veux ouvrir une base dbf il me met une erreur "format de base de donnees non reconnu"
:question)

que faire merci de votre aide .... :)

8 réponses

sferrier Messages postés 31 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 11 octobre 2002
17 avril 2002 à 12:19
Bonjour,

Il faut que tu prennes le provider pour DBase dans ta chaine de connexion et non celui concernant Jet

Cordialement
Sébastien Ferrier
Concepteur Composants
Alfa Info
s.ferrier@alafinfo.fr
0
cs_delphi Messages postés 18 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 12 septembre 2002
17 avril 2002 à 14:14
bonjour,

peux tu être un petit peu plus précis :big)

merci

@+
0
sferrier Messages postés 31 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 11 octobre 2002
17 avril 2002 à 14:34
Re

A priori je ne suis pas certain qu'il existe un provider OLEDb pour Dbase.

tente de rajouter dans ta chaine de connexion
....;Extended Properties=dBase 5.0

Comme le format Dbase est simple peut-être que le provider Jet fonctionne avec cette option.

Autrement il reste toujour la possiblité de faire une connexion ODBC du genre

{Microsoft dBASE Driver (*.dbf)};Dbqc:\taratat.dbf
0
cs_delphi Messages postés 18 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 12 septembre 2002
17 avril 2002 à 14:54
re re

oui il est existe un provider oledb pour dbase et oui si je rajoute Extended Properties=dBase 5.0 cela va marcher mais mon probléme c'est que je choisis dans ma form ma base je peux prendre de la mdb comme du dbase et il faudrait suivant la base choisir soit :
mabase.open Provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & chemin & ";"
pour une mdb
et mettre
mabase.open Provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & chemin & ";Extended Properties=dBase 5.0"
pour les bases dbase

voilà je ne sais pas si j'etais assez clair :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sferrier Messages postés 31 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 11 octobre 2002
17 avril 2002 à 15:06
Alors dans ce cas je ne vois pas où il y un problème
0
cs_delphi Messages postés 18 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 12 septembre 2002
17 avril 2002 à 16:36
oui je sais que les filles sont compliquées mais bon !! il ne faudrait pas exagérer !!! 8-)

je reprends pour être plus clair

j'ai dans ma form une partie ou je vais chercher ma base soit une base mdb soit une base dbf
suivant la base que je choisis je dois me connecter dessus
si je mets dans mon code que :

mabase.open Provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & chemin & ";"

avec une base access no souci mais pas avec une base dbase mais si je mets dans mon code :

mabase.open Provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & chemin & ";Extended properties=dBase 5.0 "
là cela va marcher pour les bases dbase mais plus pour access, et je veux arriver à me connecter à ma base que ce soit dbase ou access... ;)

suis-je clair ????? :-p
0
sferrier Messages postés 31 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 11 octobre 2002
17 avril 2002 à 17:04
Je ne comprend toujours pas le problème mais que penserais tu d'avoir une variable sChaineConnect global à ton projet.

Au démarrage de ton appli, (ou lorsque l'utilisateur choisi la base de données) tu determines le type de la base (par son extension par exemple / ou par la gestion d'erreur en tentant une connexion avec une chaine de connexion au hasard) et suivant l'extension tu construis la valeur de la chaine que tu affectes à sChaineConnect

Ensuite sur le load de tes feuilles il te suffit de passer à ton contrôle ado cette valeur (dans sa propriété ConnectionString)

J'ai Bon ?!
0
cs_delphi Messages postés 18 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 12 septembre 2002
17 avril 2002 à 17:30
pas bête du tout !! merci pour l'idée ;)
0
Rejoignez-nous