2009-09-17 88 views
2

我們正試圖連接到ACT CRM系統使用的SQL Server實例。他們設法鎖定了所有東西,因此無法使用ODBC連接到SQL後端(有一些特殊的實用程序會添加ODBC支持,如果您購買了該軟件的初始版本,則可以安裝該支持,但這是隻是瘋了)。連接到Java的OLEDB數據源?

連接到這些數據庫的推薦方法是使用OLEDB連接。

有沒有人有任何技巧/想法/等等...如何製作和使用從Java的OLEDB連接?

這不一定是JDBC,如果這是不可能的。我們真正需要做的是執行一個SELECT查詢,該查詢返回兩個字段併爲每行解析這些字段值。我對OLEDB很少有經驗,因此'使用JACOB'可能是一個很好的答案,但是我希望瞭解一些有關COM調用實際必須的細節。

+1

爲什麼不使用類型4(本地)Microsoft JDBC驅動程序? – 2009-09-17 19:55:15

+0

我會嘗試它(我更喜歡jtds,我自己) - 但登錄憑證不起作用(本地身份驗證不起作用,手動輸入用戶名和密碼也不起作用)。據我所知,除了通過OLEDB連接外,Act的登錄已完全鎖定在數據庫上。我不明白這一點,我自己(SQL是SQL,對嗎?),我沒有訪問物理服務器的權限,但是所有Google結果都表明這確實是這種情況。 – 2009-09-19 04:25:26

回答

1

我知道這是舊的,但可以幫助別人知道我是如何做到的

我詳細描述瞭如何做到這一點Here

0

Java不能直接訪問OLEDB。你需要用另一種語言如C++或C#來完成。然後你可以通過JNI或外部進程訪問。如果你不想寫JNI self的本地部分,那麼你可以使用JACOB來建議它。但我認爲外部流程採取的請求似乎更簡單。

0

解決此問題的兩種方法。從Java

  1. 菌種外部PROC(C#,C++等),使用OLEDB和重定向標準輸入,輸出和錯誤到Java程序連接到SQLSRV。
  2. 在特定的端口上創建一個C#偵聽器,並讓java通過客戶端將所有請求傳遞給該偵聽器。
1

這不是你的問題。問題在於他們鎖定服務器的方式。基本上在啓動時,它會查找非ACTUSER的登錄名並將其刪除。

雖然你可以很容易地解鎖它,然後你將能夠以通常的方式連接。

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

我已經成功地解開我的,但我忘了怎麼...我想我開始用單用戶模式,然後做了一些涉及解密在主數據庫中的存儲過程和編輯它有趣的東西刪除該「功能」。這又涉及使用SQLTrace來查看ACT發送的命令。

我建議你問服務器故障。