2017-09-28 10 views
1

Je compilez le programme pour se connecter à la base de données d'accès ms comme suit:pyodbc à la chaîne de connexion d'accès MS; Peut-il utiliser l'adresse IP?

conn_string = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' 
    r'DBQ=C:\folder_name\EVT_LOG.mdb;') 

Et cela fonctionne très bien comme prévu.

Ensuite, j'essaie de se déployer dans la situation serveur/client distant où la base de données est située dans le client et le serveur doivent y accéder, donc je revitalisée la chaîne de connexion comme suit:

conn_string = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' 
    r'DBQ=\\10.80.112.81\folder_name\EVT_LOG.mdb;') 

Celui-ci a pyodbc Le nom de la source de données .error est introuvable. Une idée de faire ce pyodbc sur base de données à distance?

+3

Êtes-vous en mesure d'atteindre le fichier par adresse '\\ 10.80.112.81 \ nom_dossier \ EVT_LOG.mdb' de Windows Explorer? Cochez ceci en premier. –

+0

Oui, je peux l'atteindre à partir de Windows Explorer, mais le problème ne réside pas dans le script, c'était parce qu'aucun pilote ODBC installé. Merci d'avoir répondu. –

Répondre

2

Oui, une adresse IP peut être être utilisée comme nom de serveur dans un chemin UNC. Le fichier de base de données doit être accessible à partir du système de fichiers Windows sur la machine exécutant le script Python, et son emplacement peut être spécifié comme un fichier local ...

C:\folder_name\EVT_LOG.mdb 

... un fichier sur un partage réseau mis en correspondance avec une lettre de lecteur ...

W:\some_folder\EVT_LOG.mdb 

... un chemin UNC qui utilise le nom du serveur ...

\\server_name\share_name\some_folder\EVT_LOG.mdb 

... ou un chemin UNC qui utilise le serveur Adresse IP ...

\\10.80.112.81\share_name\some_folder\EVT_LOG.mdb 

Notez, cependant, que le partage de fichiers Windows (parfois appelé SMB ou CIFS) est presque jamais directement accessible sur Internet, donc à des fins pratiques le serveur qui héberge la Le fichier de base de données doit être sur votre réseau local, sur un réseau WAN sécurisé ou rendu disponible via une connexion VPN. Dans chacun de ces cas, il est très probable que le serveur sera disponible par nom, de sorte que la forme IP du chemin UNC n'est pas souvent utilisée.

Rappelez-vous aussi que le fichier doit être accessible en utilisant le partage de fichiers Windows, et non pas un autre protocole Internet comme HTTP, FTP, etc ..

+0

Merci beaucoup pour l'explication. C'est en fait correct, pas de problème du script lui-même. Le problème que j'ai trouvé était sur le serveur Windows il ne contient pas lui-même odbc. après avoir fait ce qui est fait ici, il a été résolu: https://stackoverflow.com/questions/27952893/pyodbc-connection-to-mdb-file?rq=1 –