【问题标题】:Connect to OLEDB data source from Java?从 Java 连接到 OLEDB 数据源?
【发布时间】:2009-09-17 19:35:32
【问题描述】:

我们正在尝试连接到 ACT CRM 系统使用的 SQL Server 实例。他们设法锁定了一切,因此无法使用 ODBC 连接到 SQL 后端(有一些特殊的实用程序可以添加 ODBC 支持,如果您购买了该软件的原始版本,您可以安装它,但那是简直疯了)。

连接到这些数据库的推荐方法是使用 OLEDB 连接。

对于如何从 Java 建立和使用 OLEDB 连接,有人有任何技巧/想法/等吗?

如果不可能的话,这不一定是 JDBC。我们真正需要做的就是执行一个返回两个字段的 SELECT 查询,并为每一行解析出这些字段值。我对 OLEDB 的经验很少,所以“使用 JACOB”可能是一个很好的答案,但我希望了解一些关于 COM 调用实际必须是什么的细节。

【问题讨论】:

  • 为什么不只使用类型 4(本机)Microsoft JDBC 驱动程序?
  • 我会试试看(我更喜欢 jtds,我自己) - 但登录凭据不起作用(本机身份验证不起作用,手动输入用户名和密码也不起作用) .据我所知,除了通过 OLEDB 连接外,Act 已将登录完全锁定在数据库中。这个我自己也搞不明白(SQL就是SQL吧?)而且我没有访问物理服务器的权限,但是所有的谷歌结果都表明确实是这样的情况。

标签: java sql-server oledb


【解决方案1】:

我知道这是旧的,但可以帮助别人知道我是怎么做到的

我更详细地描述了如何做到这一点Here

【讨论】:

    【解决方案2】:

    这不是你的问题。问题是他们锁定服务器的方式。基本上在启动时,它会查找 ACTUSER 以外的登录名并将其删除。

    你可以很容易地解锁它,然后你就可以用通常的方式连接了。

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

    我设法解锁了我的,但我忘记了如何...我想我是在单用户模式下启动它,然后做了一些有趣的事情,包括解密主数据库中的存储过程并对其进行编辑以删除该“功能” .这反过来又涉及使用 SQLTrace 来查看 ACT 发送的命令。

    我建议你问服务器故障。

    【讨论】:

      【解决方案3】:

      Java 不能直接访问 OLEDB。您需要使用另一种语言(如 C++ 或 C#)来执行此操作。然后你可以通过 JNI 或外部进程访问。如果您不想编写 JNI self 的本机部分,那么您可以按照您的建议使用 JACOB。但我认为外部进程接受请求似乎更简单。

      【讨论】:

        【解决方案4】:

        或使用:http://uda.openlinksw.com/jdbc/mt/jdbc-sqlserver-mt/ 他们开发各种驱动程序。我以前用过这家公司...

        【讨论】:

          【解决方案5】:

          解决此问题的两种方法。

          1. 从 java 生成一个外部 proc(c#、c++ 等),它使用 OLEDB 连接到 SQLSrv 并将 stdin、stdout 和 stderr 重定向到您的 java 程序。
          2. 在特定端口上创建一个 C# 侦听器,并让 java 通过客户端将所有请求传递给该侦听器。

          【讨论】:

            猜你喜欢
            • 2016-06-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多