Aller au contenu

Messages recommandés

Posté(e)

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 0

HelpFile

NativeError -5016

Number -2147467259

SQLState S1000

Source 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 ...

Posté(e)

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

Posté(e)

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

 

 

 

Posté(e)

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

 

 

 

Posté(e)

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 !

 

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité