在Windows上使用PHP连接到Advantage数据库

时间:2012-03-29 01:30:33

标签: php odbc advantage-database-server

我的客户有一个使用Advantage数据库的应用程序。 我在使用ODBC或PHP连接器尝试使用PHP连接时遇到问题 它得到这个发现6420错误,这似乎很常见。

我认为大部分问题是我对Advantage数据库缺乏了解。 我在想问题可能是没有服务器正在运行? 该应用程序可能有自己的服务器吗? 我编写了一个小的C#程序,它连接到数据字典并且读得很好,但它使用这个Advantage.data.provider来表示C#。这是否像服务器一样?

所以我想底线是: 有没有办法连接到这个数据字典/ Advantage数据库,所以我可以用PHP访问? (最好不要买东西)

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

注意:我与Advantage或Sybase(拥有Advantage的母公司)没有任何关系;我曾经定期与Advantage合作并拥有一些经验,但绝不与公司或产品有关。

Advantage Database Server(ADS)以三种不同的模式运行。默认情况下,它以服务器模式(ADS_REMOTE_SERVER)运行,这需要运行Advantage Database Server实例,可以通过检查特定端口(端口是可配置的)来找到。

第二种默认模式是ADS_AIS_SERVER,它是Advantage Internet Server。这允许远程连接通过互联网连接直接连接到AIS实例;我从未使用过这个版本的ADS,因此我无法对该模式发表评论。

最终模式是本地服务器(未配置为默认连接类型),在这种情况下,将加载Advantage DLL的本地副本,并使用该本地连接运行以访问数据。在此模式下,某些功能不可用(例如,事务),并且连接数量有限。 Advantage Local Server可供本地免费使用,并且最多支持5个连接(最后我检查过,无论如何)。

ADS有多种连接方式(ODBC,.NET数据提供程序,C,C#,Clipper,FoxPro和其他几个库),并且在服务器和客户端级别都支持Windows和Linux。

该模式通常由API调用配置;我更熟悉通过它的Delphi组件实现使用ADS;通过API,ADSSetServerType确定使用哪种模式(或模式组合)。

对于ODBC,您可以通过ODBC配置屏幕配置模式(在Windows控制面板中使用常规ODBC管理实用程序时可见) - 请参阅下图中的“可用服务器类型”组框:

ADS ODBC Configuration Screen

根据文档,您认为这是一个发现错误是正确的。你检查了建议的解决方案吗?

问题:Advantage应用程序无法连接到Advantage Database Server。

解决方案:有几个问题可能导致发生此错误。下面列出了一些常见解决方案。有关更详细的说明和更完整的已知错误案例列表,请参阅Advantage知识库。

  • 验证Advantage Database Server是否已安装并在数据库所在的服务器上运行。

  • 如果尝试使用Advantage Local Server而不是Advantage Database Server,请确保将应用程序的“服务器类型”设置设置为使用Advantage Local Server。

  • 如果在Advantage Data Architect中使用Native SQL Utility,并且您希望使用Advantage Local Server而不是Advantage Database Server,请确保将Advantage连接类型设置为“Local(ALS)”。这可以通过“查询选项”对话框完成,该对话框通过单击其上带有螺丝刀,锤子和扳手的按钮来访问。

  • 如果服务器是NetWare 5或更高版本,请确保Advantage Database Server的版本为5.6或更高版本,并确保Advantage客户端为v2.6或更高版本。

  • 如果与仅安装了IPX的服务器通信,请确保启用Advantage客户端以发送IPX数据包。

  • 如果要通过防火墙,请确保已正确配置Advantage IP发送和接收端口并通过防火墙打开。

(我打算在Sybase网站上提供指向文档的链接,但它现在似乎是离线进行维护;我会在明天更新这个答案,当它重新启动或者我可以访问已添加书签的链接时来自我的办公室电脑。)