TDBAdvGrid
구성 요소를 사용하여 데이터베이스 테이블의 데이터를 표시하고 있습니다. 그룹, 간단한 설명, 자세한 설명, 이미지를 DBAdvGrid의 4 열로 표시하고 있습니다.TDBAdvGrid가 JOIN 쿼리로 내부 편집을 허용하지 않습니다.
DBAdvGrid.PageMode = true
옵션 goEditing은 DBAdvGrid.Options에 true로 설정됩니다. DBAdvGrid의 모든 열의 ReadOnly 속성이 False로 설정됩니다.
그럼에도 불구하고 DBAdvGrid의 첫 번째 열 (그룹) 만 인 플레이스 편집을 허용합니다. 다른 모든 내부 편집 열이 작동하지 않습니다. 편집 되 ugroup
테이블로부터 데이터를 표시하는 것이 TDBAdvGrid
오직 첫 번째 열에 결과를 표시하고 상기 쿼리
UniQuery1.SQL.Text := 'Select g.name, u.label, u.description, u.image from ugroup g, emp u where u.usergroup_id = g.id';
다음과 같이
내 SQL 쿼리는 다른 3 열에 동안 emp
테이블 데이터이다 보여주는 것이다 GoEditing
속성이 TDBAdvGrid
으로 설정된 경우에도 True로 편집 할 수 없습니다.
단일 테이블에서 선택한 데이터를 선택하면 모든 열이 TDBAdvGrid
에 편집 가능하게됩니다.
어떤 클래스 유형이'UniQuery1'입니까? 어떤 구성 요소/기술을 사용하고 있습니까? 백 엔드 데이터베이스 유형은 무엇입니까? –
@Marcus, Backend 데이터 구성 요소는 UniQuery, UniConnection, UniDataSource, SQLiteUniProvider는 SQLQuery, SQLConnection, DataSource 등과 같은 범용 데이터 액세스 구성 요소 (UniDAC) 함수에서 가져온 것입니다. TDBAdvGrid의 편집 문제는 조인 고급) 데이터가 2 개의 테이블에서 선택된 위치를 쿼리합니다. 데이터가 하나의 테이블에서만 선택되면 모든 열은 TDBAdvGrid가 편집 가능합니다. –
이것은'TDBAdvGrid'와는 아무런 관련이 없습니다. TDataSet을 통해 조인 된 테이블을 편집하는 것은 매우 (매우) 까다 롭습니다. 모든 공급자가 그것을 지원하는 것은 아니며 AFAIK (귀하의 경우 UniDAC)의 모든 공급자가 다르게 구현합니다. 일반적으로 테이블을 조인 할 때 "기본"테이블 (PK가 있음)은 TDataSet을 통해 편집 할 수 있습니다. UniDAC에 연락하는 것이 좋습니다. – kobik