从Adobe Flex/AIR访问MySQL

6

在Adobe AIR/Flex应用程序中,是否可以直接访问MySql数据库?
如果不行,下一个最佳的替代方案是什么?

6个回答

5
我不太同意Abdullah的观点(虽然我很尊重他!),认为在AIR中构建ODBC客户端会“引起奇怪的问题并开放安全问题” - 这通常是如何完成的(例如,Java和.NET,它们的运行时都打包了各种ODBC客户端)- 但两位发布者都是正确的:唯一的方法是在您的AIR应用程序中编写某种服务接口(使用Flex类,如WebService,HTTPService等),以及补充的服务器端接口(例如,通过PHP进行REST,然后连接到您的MySQL数据库)。 对于简单的应用程序,这可能有点麻烦,但目前,这就是我们所拥有的。祝好运!

1
我还没有尝试过,但是有一些项目正在实现AS3本地驱动程序以连接到mysql服务器。最终它只是一个套接字连接,而AIR应用程序允许打开套接字。请看http://code.google.com/p/assql/

我个人使用这个并且非常喜欢。你需要使用flexsdk和mx.rpc.AsyncResponder中的AsyncResponder。除此之外,一切都很好! - sfxworks

0
实际上,在AIR 2.0中,Adobe添加了NativeProcess功能。这使用户可以通过命令行的stdin/stdout在应用程序之间交换数据。缺点是您必须将应用程序编译为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


0

我不建议直接访问数据库。我在这里描述了我的做法。


0
不,虽然AIR确实内置了本地(客户端)SQLite数据库。但你真的不希望你的客户端应用程序直接访问服务器端数据库,这可能会导致奇怪的问题并打开安全问题。但是,你可以通过Web服务公开MySQL数据库。这篇文章有一种非常简单的方法来实现。

参考wezzy的回答。这是不正确的,但我不想给它一个踩因为它是基于08年12月的知识给出的好回答。 - sfxworks

0

在我看来,从Flex APP(Air或Flash)访问任何数据库的最佳方式是创建一个Web服务。在尝试了一些PHP后,我开始使用C#构建WSDL SOAP Web服务,它非常美妙!通过C#,我可以随时获取PostgreSQL、MySQL、SQL-SERVER或Oracle。并且使用Flex Builder,您可以导入WSDL,因此WSDL端创建的对象和WebMethod将为您创建,包括事件、侦听器和对象。试试看。使用C#、Java或任何其他语言,WSDL SOAP都是一个很好的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接