首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Advantage 5400 AE_INTERNAL_ERROR

Advantage 5400 AE_INTERNAL_ERROR
EN

Stack Overflow用户
提问于 2010-12-03 03:47:24
回答 3查看 432关注 0票数 1

当我在添加SQL之后尝试打开TadsQuery时,我得到了一个5400 AE_INTERNAL_ERROR。当我将相同的SQL直接放入TadsQuery中时,没有出现错误。您的帮助文件指示我联系Advantage技术支持,以便研发部门可以解决此问题。技术支持建议我在这里发帖。

以下是代码片段(由Doug Johnson建议):

代码语言:javascript
复制
if (Value = '**') or (StartUp) then
with DM1.qadSBSort do
begin
  DisableControls;
for i := 1 to 26 do
begin
  if Active then Close;
  Active := False;
  HText := 'SELECT SBName, SBPath FROM poSBSorted ' +
           ' WHERE [SBName LIKE ''' + CHR(i + 64) + '''] ' +
           ' ORDER BY SBName';
  SQL.Clear();
  SQL.Text := HText;
  try
     try
        Screen.Cursor := crHourGlass;
        Open();

     finally
        Screen.Cursor := crDefault;
     end;

  except
     On E: Exception do
     begin
        if( E.Message <> 'The SQL statement did not '+
              'generate a cursor handle.  Use ' +
              'TAdsQuery.ExecSQL to execute SQL ' +
              'statements that are not SELECT statements' )then
           MessageDlg( E.Message, mtWarning, [ mbOK ], 0 );
     end;
  end;
  Active := True;

以下是系统统计数据:

处理器:英特尔®酷睿™2双核CPU @ 2.00 Ghz已安装内存: 4.00 GB系统类型:64位。操作系统: Windows 7。编程: Delphi 2010。Advantage版本: 9.10 64位服务器:本地。表:免费。请给我建议。谢谢你,祝你一天愉快。

-Bob安德鲁斯

EN

回答 3

Stack Overflow用户

发布于 2010-12-03 11:37:35

以下是ADS错误代码列表:http://devzone.advantagedatabase.com/dz/webhelp/advantage9.1/mergedprojects/adserror/err5xxx/advantage_5xxx_error_codes.htm

错误# 5400状态

代码语言:javascript
复制
This error is an Advantage JDBC Driver internal error. Please send a small re-creation to Advantage Technical Support demonstrating the problem so that Advantage R&D can fix the issue.

我会在他们的新闻组上发布一些代码:http://devzone.advantagedatabase.com/dz/content.aspx?key=7

或者获取开发人员帐户并请求支持。

票数 1
EN

Stack Overflow用户

发布于 2010-12-04 03:31:18

您的SQL没有任何意义。您的查询(对于i=1的值)是字面上的

代码语言:javascript
复制
SELECT SBName, SBPath FROM poSBSorted 
 WHERE [SBName LIKE 'A']
 ORDER BY SBName

这不是Advantage的有效SQL,并生成

代码语言:javascript
复制
poQuery: Error 7200:  AQE Error:  State = 42000;   NativeError = 2115;  [iAnywhere Solutions][Advantage SQL Engine]Expected lexical 
element not found: IN, NOT IN, LIKE, NOT LIKE, BETWEEN, NOT BETWEEN There was a problem parsing the WHERE clause in your 
SELECT statement

如果我将其更改为正确的ADS SQL:

代码语言:javascript
复制
SELECT SBName, SBPath FROM poSBSorted 
 WHERE SBName LIKE 'A%'
 ORDER BY SBName

它可以很好地使用包含两个Char(10)列的虚拟poSBSorted db来表示SBName和SBPath。

正如我在上面的评论中所说的,发布您正在尝试使用的实际普通SQL (或者至少解释您的数据库模式、示例数据和您试图获得的结果),也许有人可以帮助您。

票数 1
EN

Stack Overflow用户

发布于 2010-12-10 10:52:59

我不能重复你得到的5400错误,但是在你提交的代码片段中有足够的问题,我将给你一些一般的指导。如果没有更多的代码,我不能比Ken做得更好,但我会给你一些东西来尝试。我不知道你是否在使用ADSConnection,但如果你不使用,你就会有问题。您的SQL语句需要按照Ken的建议进行修改。否则它就不能工作。您需要确保您的ADSQuery与您正在使用的表类型匹配。

我看到DM1的事实可能表明你是在DLL中做这件事的?

我猜好消息是你得到了一个奇怪的错误,我们两个试图复制它的人可以通过一些简单的改变来完成你试图完成的事情,而不是错误。

作为补充,您不需要同时执行Active和Open。当您打开查询时,它将变为活动状态,或者如果您将active设置为true,它将打开该查询。而且,纯粹从风格上讲,除非有参数,否则不需要方法后面的括号。这些都不会引起你的问题(我敢打赌肯定是ADSconnection的问题),但这只是一个注释。

我对您的SQL语句所做的代码更改看起来与Ken的一样。

代码语言:javascript
复制
  HText := 'SELECT SBName, SBPath FROM poSBSorted ' +
       ' WHERE SBName LIKE ''' + CHR(i + 64) + '%'' ' +
       ' ORDER BY SBName';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4339153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档