[英]“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.