2010-05-09 131 views
1

我有一個Delphi 2010 ADO程序,有一個DBGrid。其數據集從Access查詢中進行選擇。該查詢具有一個定義爲CStr(Amount * UnitCount)+「」+ Unit的列。查詢在Access中正常工作。但DBgrid拒絕顯示此列的值德爾福2010年計算列在DBGrid

回答

1

您需要在連接到網格的TDataset後代中定義一個計算的字段,然後在OnCalcFields事件中實施該字段的計算。

+0

這當然有效。但是,如果數據庫引擎在查詢中執行翻譯,那麼爲什麼控件不會像查看那樣查看查詢並顯示值,這是毫無意義的。 – 2010-05-09 13:42:19

+0

這取決於您是否想要Delphi來執行計算或數據庫引擎。如果您希望數據庫引擎執行該操作,請將您的查詢重寫爲「select a,b,(a + b)asum from mytable」。這樣包括計算的結果由DB引擎完成,並且不需要delphi中的計算字段,但是可能更難將新數據插入/更新到表中。根據TDataset後代的實施情況,它可能無法識別計算的字段,從而使數據集不能更新,但必須測試該字段。這是你的選擇。 – 2010-05-10 08:11:47