Pregunta

Estamos intentando conectarnos a una instancia de SQL Server utilizada por el sistema ACT CRM. Se las han arreglado para bloquear las cosas, por lo que no es posible conectarse al back-end de SQL usando ODBC (hay alguna utilidad especial que agregará soporte ODBC que puede instalar si compra la versión primo del software, pero eso es simplemente loco).

El método recomendado para conectarse a estas bases de datos es usar una conexión OLEDB.

¿Alguien tiene algún truco / idea / etc ... sobre cómo hacer y usar una conexión OLEDB desde Java?

Esto no tiene que ser JDBC si eso no es posible. Todo lo que realmente necesitamos hacer es ejecutar una consulta SELECT que devuelva dos campos y analizar esos valores de campo para cada fila. Tengo muy poca experiencia con OLEDB, por lo que 'usar JACOB' podría ser una buena respuesta, pero agradecería algunos detalles sobre lo que realmente tendrían que ser las llamadas COM.

¿Fue útil?

Solución

Sé que esto es viejo, pero podría ayudar a alguien a saber cómo lo hice

Describí con más detalle cómo hacerlo Aquí .

Otros consejos

Ese no es tu problema. El problema es la forma en que han bloqueado el servidor. Básicamente en el inicio, busca inicios de sesión que no sean ACTUSER y los elimina.

Sin embargo, puedes desbloquearlo con bastante facilidad, luego podrás conectarte de la manera habitual.

https://serverfault.com/questions / 77712 / sqlserver-need-to-access-an-act-database-for-data-migration

He logrado desbloquear el mío, pero olvido cómo ... Creo que lo comencé en modo de usuario único y luego hice algunas cosas divertidas que implican descifrar un proceso almacenado en la base de datos maestra y editarlo para eliminar esa "funcionalidad". ;. Eso a su vez implicó el uso de SQLTrace para ver qué comandos estaba enviando ACT.

Le sugiero que pregunte sobre la falla del servidor.

Java no puede acceder a OLEDB directamente. Debe hacer esto en otro lenguaje como C ++ o C #. Entonces puede acceder a través de JNI o ??proceso externo. Si no desea escribir la parte nativa de JNI self, puede usar JACOB como lo sugiere. Pero creo que un proceso externo toma la solicitud parece ser más simple.

O use: http://uda.openlinksw.com/jdbc / mt / jdbc-sqlserver-mt / Desarrollan todo tipo de conductores. Utilicé esta empresa antes ...

Dos formas de resolver este problema.

  1. Genera desde Java un proceso externo (c #, c ++, etc.) que se conecta a SQLSrv usando OLEDB y redirige el stdin, stdout y stderr a su programa java.
  2. Cree un escucha C # en un puerto particular y haga que Java pase todas las solicitudes a través de un cliente a ese escucha.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top