是否可以通过 Adobe AIR/Flex 应用程序直接访问 MySql 数据库?
如果不是,那么下一个最佳选择是什么?
6 回答
我不得不不同意(尽管尊重!)与 Abdullah 的观点,即在 AIR 中构建 ODBC 客户端会“导致奇怪的问题并引发安全问题”——这通常是这样做的(例如,Java 和 .NET,它们的运行时打包各种 ODBC 客户端)——但两张海报都是正确的:唯一的方法是将某种服务接口编码到您的 AIR 应用程序中(使用 WebService、HTTPService 等 Flex 类)和补充的服务器端接口(例如,通过 PHP 进行 REST,然后将连接到您的 MySQL 数据库)。对于简单的应用程序,这可能有点痛苦,但目前,这就是我们所得到的。:)
祝你好运!
我没有尝试过,但是有一些项目可以在 AS3 中实现本机驱动程序以连接到 mysql 服务器。最后它只是一个套接字连接,并且允许 AIR 应用程序打开套接字。看看http://code.google.com/p/assql/
我不建议直接访问数据库。我在这里描述了我会如何做。
不,尽管 AIR 确实有一个内置的本地(客户端)SQLite 数据库。无论如何,您并不真的希望您的客户端应用程序能够直接访问服务器端数据库,这确实会导致奇怪的问题并引发安全问题。但是,您可以使用 Web 服务公开 MySQL 数据库。这篇文章有一个非常简单的方法。
恕我直言,从 Flex APP(Air 或 Flash)访问任何数据库的最佳方式是创建 Web 服务。在使用 PHP 进行了几次试用后,我开始使用 C# 构建的 WSDL SOAP 网络服务,这真是太棒了!从 C# 中,我可以随时获得 PostgreSQL、MySQL、SQL-SERVER 或 Oracle。使用 Flex Builder,您可以导入 WSDL,以便为您创建在 WSDL 端创建的对象和 Web 方法,以及事件、侦听器和对象。尝试。对于 C# 或 Java 或任何其他语言,WSDL SOAP 是一个很好的选择。
实际上,在 AIR 2.0 中,Adobe 添加了 NativeProcess 功能。这允许用户通过命令行的标准输入/标准输出在应用程序之间交换数据。缺点是您必须将应用程序编译为 EXE、DMG 或 RPM 文件,因为此功能不是跨平台的。MySQL 通过命令行可以很好地工作,因此这对您来说可能是一个非常好的选择。以下是有关使用该功能的一些链接。
http://blog.omarfouad.com/?p=277 http://gotoandlearn.com/play.php?id=125 http://gotoandlearn.com/play.php?id=126 http://www. adobe.com/devnet/air/flex/articles/air_screenrecording.html