Question

Nous essayons de nous connecter à une instance SQL Server utilisée par le système ACT CRM. Ils ont réussi à verrouiller les choses afin qu'il ne soit pas possible de se connecter au back-end SQL avec ODBC (il existe un utilitaire spécial qui ajoute le support ODBC que vous pouvez installer si vous achetez la version primo du logiciel, mais juste fou).

La méthode recommandée pour se connecter à ces bases de données consiste à utiliser une connexion OLEDB.

Quelqu'un at-il des astuces / idées / etc ... pour établir et utiliser une connexion OLEDB à partir de Java?

Cela ne doit pas nécessairement être JDBC si cela n’est pas possible. Tout ce dont nous avons besoin, c’est d’exécuter une requête SELECT qui renvoie deux champs et d’analyser ces valeurs pour chaque ligne. J'ai très peu d'expérience avec OLEDB, alors «utiliser JACOB» pourrait être une bonne réponse, mais j'aimerais bien avoir quelques détails sur ce que les appels COM devraient réellement être.

Était-ce utile?

La solution

Je sais que c'est vieux, mais que je pourrais aider quelqu'un à savoir comment je l'ai fait

J'ai décrit plus en détail comment procéder. Ici .

Autres conseils

Ce n'est pas votre problème. Le problème est la façon dont ils ont verrouillé le serveur. Fondamentalement, au démarrage, il recherche les identifiants autres que ACTUSER et les supprime.

Vous pouvez le déverrouiller assez facilement, vous pourrez alors vous connecter de la manière habituelle.

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

J'ai réussi à déverrouiller le mien, mais j'oublie comment ... Je pense l'avoir démarré en mode mono-utilisateur, puis avoir fait quelques trucs amusants impliquant le déchiffrement d'un processus stocké dans la base de données principale et son édition pour supprimer cette "fonctionnalité". ;. Cela impliquait à son tour d’utiliser SQLTrace pour voir les commandes envoyées par ACT.

Je vous suggère de demander l'erreur de serveur.

Java ne peut pas accéder directement à OLEDB. Vous devez le faire dans un autre langage comme C ++ ou C #. Ensuite, vous pouvez accéder via JNI ou un processus externe. Si vous ne voulez pas écrire la partie native de JNI, vous pouvez utiliser JACOB comme vous le suggérez. Mais je pense qu'un processus externe prend la demande semble être plus simple.

Ou utilisez: http://uda.openlinksw.com/jdbc / mt / jdbc-sqlserver-mt / Ils développent toutes sortes de pilotes. J'ai utilisé cette entreprise avant ...

Deux façons de résoudre ce problème.

  1. Créez à partir de Java un processus externe (c #, c ++, etc.) qui se connecte à SQLSrv à l'aide d'OLEDB et redirige les stdin, stdout et stderr vers votre programme java.
  2. Créez un écouteur C # sur un port particulier et demandez à Java de transmettre toutes les requêtes via un client à cet écouteur.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top