您的位置主页 > MYSQL

通过Access从Web获取MySQL数据

MySQL是当前最流行的网络数据库,其中的原因包括:
运行速度快
免费
能运行在Linux及其他的一些平台
能与Apache(一种流行的网络服务器)完美结合
能与 PHP完美结合
MySQL具有一个ODBC接口。如果你操作的是网络服务器或MySQL服务器,并想把数据关联到桌面应用程序,采用ODBC接口是一个很好的方式。但如果你不是对服务器操作,访问MySQL的端口很有可能无效,此时只能寻求其他方法来操作你的数据。

存在的问题
所提及的问题都是针对客户机而言的。出于安全起见,客户机程序一般都通过一个主机选择网络代表,从而避免在网络上频繁地登录自己的系统。许多主机都能提供合适的条件和MySQL,可扩展的FrontPage,CGI及其他站点制作工具。它们也能满足硬件和软件的匹配问题。这一独特的主机甚至能提供各种工具帮助你增加或删除你的MySQL数据库,但是它只以基本的MySQL存放处格式进行,这就不能够直接地读入Access或其他的桌面程序。

客户机程序不想在自己单位上的服务机安装MySQL,可以通过我的程序来传递数据,只要在我的机器上运行MySQL。我可以人工地通过主机存放处获取数据。这一过程包括把数据加载到数据库,并通过ODBC传送到Access,然后向客户机发送数据库内容。我并不介意所完成的这些工作,但是我们应该简化一些不必要的工作而不要过多地依赖于人工操作。

让我再说明一下以上的过程。首先主机在网页上显示数据存放处,通过简单的代码和注册我获取了数据库的数据,注册之原因是出于安全考虑。现在,我采用微软的网页浏览器ActiveX控件直接操作Access数据库,这就允许用户很容易地通过注册过程,点击按钮即可获取MySQL数据,然后把数据传递到Access数据库的相应表中。只要数据是在Access数据库中,用户就可以用ODBC或他们惯用的方法把数据传递到ERP系统或其他专用系统。

Microsoft Access数据库
Access数据库相当简单,它是由一些数据表组成,数据表列举你要添加的数据。在这一节里,我采用的数据表名为Sales_Data,是由一个虚拟网站上的购车数据组成。同样,这一数据表应和主机上的MySQL数据表无论在名字,还是结构上都要完全一样。事实上,我们首先要在Access(图A)中生成一个数据表,然后通过ODBC把数据转移到当地服务器的MySQL上。

Figure A



Access应用程序打开的同时也打开了网页控制面板窗体。在我的例程中,程序在我的服务器上通过了PHP注册。

Figure B




采用的ActiveX控件名为WebBrowser1,执行的代码如下:

Private Sub Form_Load()
WebBrowser1.Navigate2 http://192.168.192.1/~stew/mysql/
End Sub

Figure C




MySQL screen shot

窗体中其他部分包括有两个按钮,第一个按钮(弹出控制面板)通过下面的代码显示MySQL的屏幕(如图C):

Private Sub LoadControlPanel_Click()
WebBrowser1.Navigate2 http://192.168.192.1/~stew/mysql/mysql_dump.php
End Sub

第二个按钮获取数据,这是代码中的主要部分。
接着,你将会看到Access数据库的一个下拉式列表,并且这一列表中已经有数据。在这一例子中,列表名为Sales_Data。

再者,复选框会让选择在添加数据之前是否删除旧的数据,你可以在这里做一些有用的操作,但这些操作必须是合法的。

最后,两个文本接口包含了单位名称以及MySQL数据库名称。

总结
以上就是过程的全部。用户必须通过网络接口来运行主机上的数据库查询。当MySQL存放处显示在窗体浏览器上(如图D),点击获取数据按钮就可以获取数据并存放在Access数据表中。程序也会检测数据存放处是否是基于一定格式的MySQL,并确保是正确的数据库和数据表。如果这些规则满足,就会执行程序中的INSERT命令把数据添加到目标数据表,此时会弹出一个消息对话框以显示这一过程。如果有错误产生则返回到窗体。Listing A包含了完整的代码。

Figure D




MySQL screen dump