JavaからOLEDBデータソースに接続しますか?
-
10-07-2019 - |
質問
ACT CRMシステムで使用されるSQL Serverインスタンスに接続しようとしています。彼らは物事をロックダウンして、ODBCを使用してSQLバックエンドに接続することはできません(primoバージョンのソフトウェアを購入した場合にインストールできるODBCサポートを追加する特別なユーティリティがありますが、それはただクレイジー)。
これらのデータベースに接続する推奨される方法は、OLEDB接続を使用することです。
JavaからOLEDB接続を作成および使用する方法について、誰かがトリック/アイデア/などを持っていますか?
それが不可能な場合、これはJDBCである必要はありません。本当に必要なのは、2つのフィールドを返すSELECTクエリを実行し、各行のフィールド値を解析することだけです。私はOLEDBの経験がほとんどないので、「JACOBを使用する」が良い答えかもしれませんが、COM呼び出しが実際に何をする必要があるかについての詳細を感謝します。
解決
これは古いことは知っていますが、誰かが私がそれをどのようにしたかを知る助けになるかもしれません
その方法について詳しく説明しましたこちら。
他のヒント
それはあなたの問題ではありません。問題は、サーバーをロックダウンする方法です。基本的に、起動時にACTUSER以外のログインを探して削除します。
非常に簡単にロックを解除できますが、通常の方法で接続できます。
どうにかして私のロックを解除できましたが、方法を忘れました...シングルユーザーモードで起動した後、マスターデータベースのストアドプロシージャを解読し、その「機能」を削除するために編集するという面白いことをしたと思います;。次に、SQLTraceを使用して、ACTが送信したコマンドを確認しました。
サーバー障害について尋ねることをお勧めします。
JavaはOLEDBに直接アクセスできません。 C ++やC#などの別の言語でこれを行う必要があります。その後、JNIまたは外部プロセスを介してアクセスできます。 JNI自己のネイティブ部分を書きたくない場合は、JACOBを提案どおりに使用できます。しかし、外部プロセスはリクエストを取得する方が簡単だと思います。
または使用: http://uda.openlinksw.com/jdbc / mt / jdbc-sqlserver-mt / あらゆる種類のドライバーを開発します。以前この会社を使用しました...
この問題を解決する2つの方法。
- OLEDBを使用してSQLSrvに接続し、stdin、stdout、およびstderrをJavaプログラムにリダイレクトする外部プロシージャ(c#、c ++など)をjavaから生成します。
- 特定のポートでC#リスナーを作成し、javaがクライアントを介してすべてのリクエストをそのリスナーに渡すようにします。