6 votos

Crear una conexión OLE DB de ArcCatalog con Python

¿Es posible crear un Conexión OLE DB (*.odc) a una base de datos en ArcGIS 10 , pero utilizando Python en lugar del asistente GUI de ArcCatalog? No necesito necesariamente crear un archivo en el disco, sólo hacer la conexión a la base de datos. Estoy tratando de automatizar un procedimiento que muchos usuarios pueden utilizar, y no quiero depender de que cada usuario recuerde crear la conexión OLE DB manualmente a través de ArcCatalog.

El código Python proporcionado por @blord-castillo en una pregunta similar muestra Cómo crear una conexión SDE utilizando Python Así que estoy buscando algo similar que cree una conexión OLE DB. Parece que no puedo encontrar ninguna referencia a cualquier código de Python para esta tarea.

Con el tiempo, la muestra de código python usando Make Query Table es básicamente lo que quiero hacer, pero asume que ya tienes tu conexión *.odc construida.

¿Alguien tiene sugerencias o sugerencias de lugares donde buscar ejemplos de código? Estoy trabajando contra una base de datos SQL Server, en caso de que eso importe.

0 votos

Esto no es específico de GIS o ArcGIS. Mira el paquete win32com.client en Python. ¿Realmente quieres decir .odc? Eso es un Office Data Connection. ¿Tal vez ODBC? Véase también wiki.python.org/moin/SQL%20Server

2 votos

Entiendo lo que dices y no quiero una conexión ODBC genérica. Estoy buscando para crear un Específico de ArcGIS Conexión OLE DB para ArcCatalog, que crea una cadena de conexión *.odc. Consulte la ayuda de ArcGIS en Añadir conexiones OLE DB a través de ArcCatalog. Sólo quiero hacerlo a través de Python, no la forma GUI como se ve en la ayuda.

0 votos

¿Tuvo éxito a la conexión de base de datos OLE DB utilizando ArcPY? Necesito conseguir que se conecte a través de ArcPY y automatizar el proceso de consulta también. Para su información: Tengo ArcGIS 10.0. Apprecaite su respuesta. Gracias

4voto

Sork Puntos 26

¿Ya puedes usar arcpy 10.1? Las conexiones OLEDB se crean como archivos .sde en 10.1 usando una nueva función: http://resourcesbeta.arcgis.com/en/help/main/10.1/index.html#/Create_Database_Connection/00170000016q000000/

arcpy.CreateDatabaseCOnnection_management("C:\\MyDirectory", "test.sde", "SQL_SERVER", "servername", "DATABASE_AUTH", "MyUserId", "MyPassword", "SAVE_USERNAME", "databasename")

0 votos

¡¡¡Yo no tengo la 10.1 pero es una gran noticia!!!

1 votos

Tengo 10.1 y he probado esto. Resulta que Query Tables y Query Layers no se pueden construir desde una conexión de archivo sde (que crea CreateDatabaseConnection_management). Es el tipo de espacio de trabajo incorrecto. Debe ser una conexión OLE DB que Esri no expone con Python. Aunque se puede hacer desde ArcCatalog 10.1. Tiene que buscar "OLE DB" en los comandos del modo de personalización, agregarlo a sus menús y luego puede crear una nueva conexión OLE DB con la interfaz de usuario. Esto no está disponible a través de ArcDesktop sin embargo. Una vez que la conexión está ahí, entonces Python puede utilizarlo.

3voto

auramo Puntos 161

No creo que la capacidad de crear archivos de conexión ArcGIS OLE DB esté expuesta en arcpy. Tendrás que crear los archivos .odc de antemano, utilizar ArcObjects en Python para crearlos, utilice ODBC, por ejemplo a través de pyodbc o utilice una de estas otras API para llegar a los datos que necesitas.

0 votos

Me temo que tienes razón, pero esperaba que no fuera así. Cuando busqué en arcpy algo similar a arcpy.CreateArcSDEConnectionFile_management() pero para las conexiones OLEDB no he encontrado nada.

0 votos

Advertencia rápida

1voto

EugeneDurshpek Puntos 18

Este es el tipo de respuesta tardía. ¿Has probado a crear .odc conexión en ArcCatalog, a continuación, a continuación, copie la conexión a través de un "estándar" de la ubicación en la red y llamar a esa conexión usando Python? Por ejemplo, tenemos un estándar de ubicación en la red específicamente diseñado para conexiones de base de datos. Este incluye .el sde y .odc conexiones. Nos aseguramos de que la carpeta incluye todas las conexiones que necesitamos para las distintas bases de datos. A continuación, acabo de llamar a esas conexiones de python cuando los parámetros de configuración. Espero que esta ayuda.

Gracias! Eugene Durshpek

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X