2009-09-17 103 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发送的命令。

我建议你问服务器故障。