Conectar a fonte de dados OLE DB de Java?
-
10-07-2019 - |
Pergunta
Estamos tentando conectar a uma instância do SQL Server usada pelo sistema ACT CRM. Eles conseguiram coisas bloqueio para baixo por isso não é possível conectar-se ao back-end SQL usando ODBC (há alguma utilidade especial que irá adicionar suporte ODBC que você pode instalar, se você comprar a versão primo do software, mas isso é apenas loucos).
O método recomendado de se conectar a bancos de dados de teses está usando uma conexão OLEDB.
Alguém tem alguma truques / ideias / etc ... para saber como fazer e usar uma conexão OLEDB de Java?
Isto não tem que ser JDBC se isso não é possível. Tudo o que realmente precisa fazer é executar uma consulta SELECT que retorna dois campos e analisar esses valores de campo para cada linha. Eu tenho muito pouca experiência com OLEDB, então 'utilização JACOB' pode ser uma resposta boa, mas eu apreciaria alguns detalhes sobre o que as chamadas COM seria realmente tem que ser.
Solução
Eu sei que este é antiga, mas poderia ajudar alguém saber como eu fiz isso
I descritos mais detalhadamente como fazê-lo Aqui .
Outras dicas
Isso não é problema seu. O problema é a maneira como eles têm bloqueado o servidor. Basicamente na inicialização parece para outros fins que ACTUser e remove-los logins.
Você pode desbloqueá-lo muito facilmente embora, então você será capaz de se conectar da maneira usual.
Eu consegui meu desbloqueio mas eu esquecer como ... Eu acho que eu comecei-o no modo de usuário único, em seguida, fez algumas coisas engraçadas envolvendo descriptografar um proc armazenado no banco de dados mestre e editá-lo para remover essa "funcionalidade" . Que por sua vez envolvido usando SQLTrace para ver o que comanda ACT estava enviando.
Eu sugiro que você pergunte sobre o servidor falha.
Java não pode acessar OLE DB diretamente. Você precisa fazer isso em outro idioma, como C ++ ou C #. Então você pode acessar via JNI ou processo externo. Se você não quer escrever a parte nativa do JNI auto então você pode usar JACOB como você sugerir isso. Mas eu acho que um processo externo tomar o pedido parecem ser mais simples.
Ou use: http://uda.openlinksw.com/jdbc / mt / JDBC-sqlserver-mt / Eles desenvolvem todos os tipos de motoristas. Eu usei esta empresa antes de ...
Duas maneiras de resolver esta questão.
- O Spawn de java um proc externa (c #, C ++, etc) que se conecta a sqlsrv usando OLE DB e redirecionar a stdin, stdout e stderr para o seu programa java.
- Criar um C # ouvinte em uma porta específica e ter java passar todos os pedidos através de um cliente para esse ouvinte.