我正在进行一项遗留项目,其中使用ODBC连接在互联网上处理数据库管理。遗留程序最近已在C#中重写。我们目前正在讨论如何改进程序,我对使用ODBC连接数据库感到有点不舒服。我已经编写了使用套接字连接到服务器的例程以及结合cgi或php脚本的POST,PUT和GET命令,并且已经广泛阅读了我认为是前进方向的AJAX范例。我的同事坚持使用ODBC。使用ODBC连接与更现代的方法有什么优缺点?
答案 0 :(得分:4)
数据库到应用程序协议从未设计为通过互联网使用。他们太健谈了,很难保证。如果您有机会这样做,那么您应该考虑将数据库封装在正确安全的Web服务之后。
答案 1 :(得分:1)
对于基于ODBC的HTTP,没有任何“现代”的东西。只需确保将其包装在SSL和/或VPN中,并使用合理的访问控制。那些不了解网络的人注定要在端口80上重新发明它
它将比HTTP更高效,而HTTP不是为此而设计的。至少,HTTP命令为每个操作增加了大量开销。 ODBC将为您带来更好的延迟(这在客户端驱动的数据库设计中至关重要)
答案 2 :(得分:0)
如何使用ODBC与现代方法,Web服务。这种方法有许多优点。例如:
当然,查询的复杂性存在一些安全问题和限制。
答案 3 :(得分:0)
我的办公室里有类似的东西。他们有很多机器,VB.NET应用程序访问本地数据库(经常遇到太多未使用的连接)和一些通过SSH / SSL隧道联系外部数据库的Web服务。
除非隧道发生故障,否则外部数据库确实没有太多问题。您也可以设置VPN。
如果您对使用AJAX / JSON / REST技术与数据库通信感兴趣,可以使用DBSlayer之类的抽象层。
答案 4 :(得分:0)
使用TypeIV“直接”数据库驱动程序(如C#的System.Data.SqlClient命名空间或Java的JDBC驱动程序)的效率比通过ODBC层高2-3倍(性能更好)。
我会避免使用ODBC,因为它速度较慢,而且我认为它并不容易。