mysql - FDQuery (Delphi XE6) 上的 "type mismatch expecting AutoInc actual LongWord"

标签 mysql delphi delphi-xe6 firedac

我们使用 Delphi XE6 错误的组件是 MySQL 4.1 中的一个 TFDQuery。

当我尝试使用组打开查询时,FDQuery 显示:

type mismatch expecting AutoInc actual LongWord

在字段编辑器中字段是正确的,它显示 AutoInc 但错误总是出现,如果我在查询时删除 group by 错误停止但结果是错误,当我删除 Field Editor 的所有字段并重试时,工作正常。

我尝试在字段编辑器上手动插入一个字段作为 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 上。

最佳答案

如果不使用聚合函数,select 中的字段数必须等于 group by 中的字段数。
来自 docs :

SELECT expression1, expression2, ... expression_n, 
       aggregate_function (aggregate_expression)
FROM tables
WHERE conditions
GROUP BY expression1, expression2, ... expression_n;

其中 expression1, expression2, ... expression_n - 未封装在聚合函数中且必须包含在 SQL 语句末尾的 GROUP BY 子句中的表达式。

关于mysql - FDQuery (Delphi XE6) 上的 "type mismatch expecting AutoInc actual LongWord",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32332880/

相关文章:

xml - 在 TXMLDocument 中多次添加相同的 IXMLNode

delphi - 在单元破坏调试信息中通用定义

Delphi、WinSvc.StartService 参数未成功传递给服务应用程序

Mysql 字符集和形式

mysql - 如何将columnName及其值动态添加到MYSQL表中

android - 套接字错误 #113 没有到 Android 主机的路由

delphi - 传递列表的预期方式是什么?

delphi - 检测 TWebBrowser 文档中的事件元素何时发生变化

mysql - 这个 SQL 模式适合存储运动数据和统计数据吗?

php - select * from table 其中名称如 %O%