我使用TDBAdvGrid
組件顯示數據庫表中的數據。 它顯示4列 - 組,簡短描述,長描述,圖像到DBAdvGrid從表。TDBAdvGrid不允許使用JOIN進行就地編輯查詢
DBAdvGrid.PageMode = true
DBAdvGrid.Options中的選項goEditing設置爲true。 DBAdvGrid的所有列的ReadOnly屬性設置爲False。
儘管如此,只有DBAdvGrid的第一列(組)才允許就地編輯。所有其他列就地編輯不起作用。
我的SQL查詢是如下
UniQuery1.SQL.Text := 'Select g.name, u.label, u.description, u.image from ugroup g, emp u where u.usergroup_id = g.id';
隨着它在TDBAdvGrid
但只有第一列顯示結果,其示出了從ugroup
表數據正在被編輯的上述查詢而其它3列,其示出了從emp
表數據是儘管將TDBAdvGrid
的GoEditing
屬性設置爲True,但不可編輯。
我從TDBAdvGrid
獲取所有列,當從單個表中選擇數據時可編輯。
什麼類的類型是'UniQuery1'?你使用什麼組件/技術?後端數據庫類型是什麼? –
@Marcus,後端數據組件是UniQuery,UniConnection,UniDataSource,SQLiteUniProvider都來自類似於SQLQuery,SQLConnection,DataSource等的通用數據訪問組件(UniDAC)函數。我面對的TDBAdvGrid的編輯問題只與連接高級)查詢從2個表中選擇數據的位置。如果僅從一個表中選擇數據,則所有列都是TDBAdvGrid可編輯。 –
這與'TDBAdvGrid'無關。通過TDataSet編輯連接表格非常(非常)棘手。並非所有的提供商都支持它,並且AFAIK每個提供商(在您的情況下UniDAC)都以不同的方式實施它。通常在連接表時,「主」表(具有PK)可通過TDataSet進行編輯。我建議你聯繫UniDAC。 – kobik