dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID):= adoTreeWindow.FieldByName( 'RetailCalendarPeriodID') AsIntege r
不應編譯。
它看起來像dxMemData1RetailCalendarPeriodID
是您在dxMemData1數據集中創建的持久字段對象。 FieldByName
方法用於找到一個字段的名字,但你不需要那樣做,因爲你已經有有這個字段,dxMemData1RetailCalendarPeriodID
!
所以,你需要的只是
dxMemData1RetailCalendarPeriodID.AsInteger := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger
是原因編譯器錯誤是FieldByName
希望傳遞一個字符串,給出一個字段的名,而你試圖通過場本身,這是一個TObject後代不是一個字符串。下面會工作,不過是不必要的,因爲碼的我已經展示:
dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID.FieldName) := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger;
更新你說你得到一個「無效的變異操作」錯誤。如果你使用這個代碼,你仍然可以得到它:
if not adoTreeWindow.FieldByName('RetailCalendarPeriodID').IsNull then
dxMemData1RetailCalendarPeriodID.AsInteger := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger
?
您需要添加您正在使用的**確切**代碼,它會將此錯誤提供給您的q。 – MartynA
下面是確切代碼dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID):= adoTreeWindow.FieldByName('RetailCalendarPeriodID')。AsInteger; – Fly
我給了我資料,希望這個更清楚 – Fly