【问题标题】:ODBC vs. newer methods for database management over the internetODBC 与通过 Internet 进行数据库管理的较新方法
【发布时间】:2009-07-01 14:34:08
【问题描述】:

我正在承担一个遗留项目,其中使用 ODBC 连接通过 Internet 处理数据库管理。遗留程序最近已用 C# 重写。我们目前正在讨论如何改进程序,我对使用 ODBC 连接数据库有点不舒服。我已经编写了使用套接字和 POST、PUT 和 GET 命令结合 cgi 或 php 脚本连接到服务器的例程,并广泛阅读了关于 AJAX 范例的信息,我认为这是前进的方向。我的同事坚持使用 ODBC。与更现代的方法相比,使用 ODBC 连接的优缺点是什么?

【问题讨论】:

    标签: mysql database odbc


    【解决方案1】:

    数据库到应用程序的协议从未设计为通过 Internet 使用。他们太健谈,难以保护。如果您有机会这样做,那么您应该考虑将数据库封装在一个安全可靠的 Web 服务后面。

    【讨论】:

    • +1 表示“适当安全”的 web svc。 @Jay - 最新的 WSE 是一个很好的起点
    【解决方案2】:

    那些不懂网络的人注定要在 80 端口重新发明它

    HTTP over ODBC 没有什么“现代”的。只需确保将其封装在 SSL 和/或 VPN 中并使用合理的访问控制即可。

    它将比 HTTP 更有效,而 HTTP 并不是为此而设计的。至少,HTTP 命令为每个操作增加了很多开销。 ODBC 将为您提供更好的延迟(这在客户端驱动的数据库设计中至关重要)

    【讨论】:

    • 我完全同意你的第一句话,但真的不明白你的第二句话。你可能想重做它。
    【解决方案3】:

    如何将 ODBC 与现代方法 Web 服务一起使用。这种方法有很多优点。例如:

    • 多个客户端程序可以使用 Web 服务的单个实例来 访问数据。没有必要 在每个中编写与数据库相关的代码 个人申请。
      • 用户需要安装ODBC驱动和​​配置ODBC数据 仅在服务器计算机上的源 托管 Web 服务。客户 程序可以运行在其他 网络上的机器。
      • 客户端程序不限于 .NET 或 Windows 平台。他们都 访问数据库必须做的是调用 网络服务。
      • 数据库连接可以在不同的客户端之间共享 程序。
      • 可以从 中心位置(网络服务)。

    当然,查询的复杂性存在一些安全问题和限制。

    【讨论】:

      【解决方案4】:

      我的办公室里也有类似的东西。他们有许多装有 VB.NET 应用程序的机器访问本地数据库(经常被太多未使用的连接卡住)以及一些通过 SSH/SSL 隧道联系外部数据库的 Web 服务。

      除非隧道发生故障(这种情况很少见),否则我们在外部数据库方面并没有真正遇到很多问题。您可能还可以设置 VPN。

      如果您对使用 AJAX/JSON/REST 技术与数据库进行通信感兴趣,可以使用像 DBSlayer 这样的抽象层。

      【讨论】:

        【解决方案5】:

        使用 TypeIV“直接”数据库驱动程序(如 C# 的 System.Data.SqlClient 命名空间或 Java 的 JDBC 驱动程序)比通过 ODBC 层效率高 2-3 倍(性能更好)。

        我会避免使用 ODBC,因为它速度较慢,而且我认为它并不容易。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-18
          • 2011-06-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-09-23
          相关资源
          最近更新 更多