簡體   English   中英

FDQuery(Delphi XE6)上的“類型不匹配,期望使用AutoInc實際的LongWord”

[英]“type mismatch expecting AutoInc actual LongWord” on FDQuery (Delphi XE6)

我們使用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上發生。

如果不使用聚合函數,則select中的字段數必須等於group by中的字段數。
文檔

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子句中的表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM