stephan35 Posté(e) le 30 janvier 2007 Posté(e) le 30 janvier 2007 Bonjour, Je cherche à résoudre un probleme de connection, en effet je ne peut pas ouvrir 2 sessions d'autocad en simultanée sans obtenir le message d'erreur suivant : Connecting to the database using"Provider=MSDASQL;Driver={Microsoft dBase Driver (*.dbf)};DBQ=D:\BP17\A\" ok!Last SQL statement:"SELECT VALEUR FROM BP17AVAR WHERE ENTREE='$EXPORTE_BD_REFC'" Visual LISP message Erreur Automation [Microsoft][Pilote ODBC dBase] Erreur inattendue du pilote de base de données externe (15877). Description [Microsoft][Pilote ODBC dBase] Erreur inattendue du pilote de base de données externe (15877).HelpContext 0HelpFileNativeError -5016Number -2147467259SQLState S1000Source Microsoft OLE DB Provider for ODBC Drivers Ma méthode de connection est la suivante : (setq ConnectString (strcat "Provider=MSDASQL;Driver={Microsoft dBase Driver (*.dbf)};DBQ=" $disque "\\" $Aff "\\" $Tranche "\\" )) (prompt (strcat "\n\nConnecting to the database using \n\"" ConnectString "\"" )) (if (not (setq ConnectionObject (ADOLISP_ConnectToDB ConnectString "" ""))) (progn(alert "\nConnection Impossible !")(ADOLISP_ErrorPrinter))(prompt " ok!")) Vraisemblablement, je ne peut ouvrir une connection driver dbf qu'une seule fois ! :( et ça me plante mes autres applicatifs qui utilise ce même driver. Merci de m'aiguiller ...
Oli553 Posté(e) le 31 janvier 2007 Posté(e) le 31 janvier 2007 Pourquoi lance tu 2 fois le programme?Tu peut aussi ouvrir plusieurs fichiers dans la même cession... L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai. "Il vaut mieux mobiliser son intelligence sur des conneries, que sa connerie sur des choses intelligentes" - Devise Shadok. "ceux qui ne se souviennent pas du passé sont condamnés à le revivre" George Santayana Ma bibliothèque de blocs électrique :symbole elec.dwg
stephan35 Posté(e) le 31 janvier 2007 Auteur Posté(e) le 31 janvier 2007 Bonjour, De oli553 Pourquoi lance tu 2 fois le programme?Tu peut aussi ouvrir plusieurs fichiers dans la même cession... Facile, j'ai du bridé autocad à ouvrir un seul fichier à la fois à cause des traitement automatiques qui sont gérés par projet !, mais de toute façon le problème reste le même:[surligneur]En ouvrant une seule cession, autocad, via l'accès ADOLISP, accède à odbc et bloque tous les autres programme qui utilise le même driver ![/surligneur] Ci-joint le module de connection : (if (null ADOMethod-Append) (cond ;; If we can find the library in the registry ... ((and (setq ADOLISP_ADODLLPath (vl-registry-read "HKEY_CLASSES_ROOT\\ADODB.Command\\CLSID" ) ) (setq ADOLISP_ADODLLPath (vl-registry-read (strcat "HKEY_CLASSES_ROOT\\CLSID\\" ADOLISP_ADODLLPath "\\InProcServer32" ) ) ) (findfile ADOLISP_ADODLLPath) ) ;; Import it (vlax-import-type-library :tlb-filename ADOLISP_ADODLLPath :methods-prefix "ADOMethod-" :properties-prefix "ADOProperty-" :constants-prefix "ADOConstant-" ) ) ;; Or if we can find it where we expect to find it ... ((setq ADOLISP_ADODLLPath (findfile (if (getenv "systemdrive") (strcat (getenv "systemdrive") "\\program files\\common files\\system\\ado\\msado15.dll" ) "c:\\program files\\common files\\system\\ado\\msado15.dll" ) ) ) ;; Import it (vlax-import-type-library :tlb-filename ADOLISP_ADODLLPath :methods-prefix "ADOMethod-" :properties-prefix "ADOProperty-" :constants-prefix "ADOConstant-" ) ) ;; Can't find the library, tell the user (T (alert (strcat "Cannot find\n\"" (if ADOLISP_ADODLLPath ADOLISP_ADODLLPath "msado15.dll" ) "\"" ) ) ) ) ) J'ai tenté une connection via la commande "connecbd", le problème est identique, Autocad demande, je le suppose , [surligneur]un accès exclusif à la base de donnée !!! [/surligneur] Le driver odbc utilisé est : Provider=MSDASQL;Driver={Microsoft dBase Driver (*.dbf)}; en utilisant le "do driver DBF" le problème reste identique ... Est-ce MSADO15.dll qui demande un accès exclusif ??? Merci pour vos réponses
stephan35 Posté(e) le 31 janvier 2007 Auteur Posté(e) le 31 janvier 2007 Bonjour, De oli553 Pourquoi lance tu 2 fois le programme?Tu peut aussi ouvrir plusieurs fichiers dans la même cession... Facile, j'ai du bridé autocad à ouvrir un seul fichier à la fois à cause des traitement automatiques qui sont gérés par projet !, mais de toute façon le problème reste le même:[surligneur]En ouvrant une seule cession, autocad, via l'accès ADOLISP, accède à odbc et bloque tous les autres programme qui utilise le même driver ![/surligneur] Ci-joint le module de connection : (if (null ADOMethod-Append) (cond ;; If we can find the library in the registry ... ((and (setq ADOLISP_ADODLLPath (vl-registry-read "HKEY_CLASSES_ROOT\\ADODB.Command\\CLSID" ) ) (setq ADOLISP_ADODLLPath (vl-registry-read (strcat "HKEY_CLASSES_ROOT\\CLSID\\" ADOLISP_ADODLLPath "\\InProcServer32" ) ) ) (findfile ADOLISP_ADODLLPath) ) ;; Import it (vlax-import-type-library :tlb-filename ADOLISP_ADODLLPath :methods-prefix "ADOMethod-" :properties-prefix "ADOProperty-" :constants-prefix "ADOConstant-" ) ) ;; Or if we can find it where we expect to find it ... ((setq ADOLISP_ADODLLPath (findfile (if (getenv "systemdrive") (strcat (getenv "systemdrive") "\\program files\\common files\\system\\ado\\msado15.dll" ) "c:\\program files\\common files\\system\\ado\\msado15.dll" ) ) ) ;; Import it (vlax-import-type-library :tlb-filename ADOLISP_ADODLLPath :methods-prefix "ADOMethod-" :properties-prefix "ADOProperty-" :constants-prefix "ADOConstant-" ) ) ;; Can't find the library, tell the user (T (alert (strcat "Cannot find\n\"" (if ADOLISP_ADODLLPath ADOLISP_ADODLLPath "msado15.dll" ) "\"" ) ) ) ) ) J'ai tenté une connection via la commande "connecbd", le problème est identique, Autocad demande, je le suppose , [surligneur]un accès exclusif à la base de donnée !!! [/surligneur] Le driver odbc utilisé est : Provider=MSDASQL;Driver={Microsoft dBase Driver (*.dbf)}; en utilisant le "do driver DBF" le problème reste identique ... Est-ce MSADO15.dll qui demande un accès exclusif ??? Merci pour vos réponses
stephan35 Posté(e) le 6 février 2007 Auteur Posté(e) le 6 février 2007 Bonjour à tous Je suis heureux de vous annoncer que mon accès à la base de données Via ADOLisp fonctionne à nouveau, cependant, [surligneur] n'utiliser pas le moteur dbase *.dbf [/surligneur] car il provoque l'arrêt des autres processus ODBC (y compris Borland BDE) ! Ceci est un bug microsoft ! Donc j'ai changé mon type de base de donnée , je suis passé en *.mdb .... (je serre les fesses ;) ) A bientôt !
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant