database - 关于使用 Delphi XE2 进行数据库编程的问题

标签 database delphi sockets delphi-xe2 dbexpress

我知道并且听说过在 Delphi (XE2) 中有多种连接数据库服务器的方法:套接字、datasnap、webservices、远程数据模块 (¿?)、dbExpress 和其他第三方,如 UniDAC。我通常使用 UniDAC,但我想知道何时以及如何正确使用它们。显然 DataSnap 是 Delphi 的旗舰。我还没有找到有用的教程来回答这些问题。那么对于 Win32 应用程序,在开发客户端应用程序时,考虑到安全性、灵 active 和可扩展性,推荐选择哪种方式?

有没有办法让客户端 Win32 应用程序对数据库访问的更改透明?也就是说,如果我分发了 100 个客户端应用程序并且我想更改数据库访问的密码,那么必须更新每个客户端应用程序将是一个问题。

是否建议为客户端应用程序建立与数据库的唯一连接?

我尝试测试 DBExpress(与 Delphi XE2 捆绑)和 AnyDAC 以连接到我的远程 MySQL 数据库,但 VendorLibs 出现问题。有没有一种方便的方法来解决这个问题,而不必安装我想测试的每个 RDBMS?

DBExpress 是免费的还是我必须为更多功能付费?

任何人都可以推荐非常好的书籍来学习 DataSnap、中间件应用程序等?

提前致谢。

最佳答案

如果您有多个分布式客户端,您可能希望使用多层解决方案(如 DataSnap 或 DataAbstract),其中在服务器端运行单个持久数据连接,每个客户端只需连接到该服务器应用程序即可请求数据。

DataSnap 提供多种不同的客户端/服务器连接解决方​​案:Socketed、REST 等,因此您可以自行决定哪种方式最适合您的系统。

DataAbstract 似乎是市场上最流行的多层数据应用程序解决方案之一(如果不是的话),我碰巧知道许多开发人员出于各种原因对它发誓(安全性是其中之一,易用性是另一个原因)。

我一直认为,如果您的客户端应用程序需要直接连接到数据库,那么您做错了!

如果您正在寻找有关 DataSnap 的更多信息,在最近的 CodeRage 事件中有一些有趣的 session 。您可以在 Embarcadero's CodeCentral subsite 下载/观看任何这些类(class)(免费)。 .

至于书籍,最好的选择永远是 Marco Cantú 的 Delphi 手册(特别是 XE 书籍,它仍然主要适用于 XE2 的 DataSnap)。

重要的是要记住,DataSnap 仅随 Delphi 的 Enterprise、Ultimate 和 Architect 版本提供......它在 Pro 或 Starter 中不可用!

尽管如此,您始终可以在您自己的服务器层上使用 ODBC 连接到任何 ODBC 数据库(包括 MySQL、MSSQL、Oracle ......甚至是 MS Access,如果您想享受“过去的爆炸”),然后使用任何网络您喜欢的套接字解​​决方案(例如随 Delphi [所有版本] 作为标准附带的 Indy)将您的客户端应用程序链接到服务器层!看看 TADOConnection、TADOQuery 等。

希望您发现此信息有用!

关于database - 关于使用 Delphi XE2 进行数据库编程的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7775087/

相关文章:

java - 安卓多人网络游戏

php 计数 vs sql 计数 vs 计数字段?演出

php - 选择查询检查表单数据是否已存在于数据库 MySQL/PHP 中的小问题

mysql - 学习MySQL、SQLite源码了解RDBMS实现

ruby-on-rails - 更改连接 search_paths 的线程安全方式

delphi - 如何使用 SetWindowHookEx api 锁定 CTRL+ALT+DEL?

delphi - 串口重叠和蓝屏死机

delphi - 如何检索 Windows 用户的超链接颜色首选项值?

java - 带套接字的简单 Java HTTP 代理卡住,没有错误消息

java - 如何在JAVA中通过套接字发送File[]类型的变量