【发布时间】:2015-11-26 18:21:36
【问题描述】:
我们使用 Delphi XE6,错误的组件是 MySQL 4.1 中的 TFDQuery。
当我尝试使用组打开查询时,FDQuery 显示:
类型不匹配预期 AutoInc 实际 LongWord
在字段编辑器中,该字段是正确的,它显示AutoInc,但始终出现错误,如果我在查询中删除group by,则错误停止但结果错误,当我删除字段编辑器的所有字段时,再试一次,工作正常。
我尝试在字段编辑器中手动插入一个字段作为 Integer 字段,但它也不起作用。
我的表中有错误的字段 (NUMBOLE) 是 Integer 字段,AutoInc(来自 tabbolvenda 的主键)
FDQuery1.Close;
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('select');
FDQuery1.SQL.Add('b.NUMVENDA,');
FDQuery1.SQL.Add('a.DATAVENDA,');
FDQuery1.SQL.Add('b.NUMBOLE,');
FDQuery1.SQL.Add('b.PARCELAS,');
FDQuery1.SQL.Add('a.CODCLIENTE,');
FDQuery1.SQL.Add('a.NOMECLIENTE,');
FDQuery1.SQL.Add('b.DATAVTO,');
FDQuery1.SQL.Add('a.MONTANTE,');
FDQuery1.SQL.Add('b.DATAPTO,');
FDQuery1.SQL.Add('if(b.EMABERTO = ''True'', ''Sim'',''Não'') as EMABERTO,');
FDQuery1.SQL.Add('a.CUSTOVENDA,');
FDQuery1.SQL.Add('a.LUCROVENDA,');
FDQuery1.SQL.Add('a.COMISSAO');
FDQuery1.SQL.Add('from tabvendas a inner join tabbolvenda b');
FDQuery1.SQL.Add('on a.NUMVENDA = b.NUMVENDA');
FDQuery1.SQL.Add('group by b.NUMVENDA order by b.NUMVENDA'); <--- if I remove this group by it works
FDQuery1.Open;
FDQuery 上是否有任何属性可以使此错误消失?当我的项目使用 Zeos Query 在 Delphi 6 上时,相同的 select 不会显示任何错误消息。它只发生在 FDQuery 上。
【问题讨论】:
-
MySQL 在带有和不带有 GROUP BY 的 SELECT 列表中更改 auto-inc 列数据类型。当查询使用 GROUP BY 时,您是否创建了持久字段?
标签: mysql delphi delphi-xe6 firedac