까지 멀리 정렬하는 것은 ClientDataSet에서 정렬이 indexDefs를 통해 작동한다는 것을 안다. indexDef를 추가하고, 정렬 할 필드를 설정하고, ixDescending 속성을 통해 정렬 할 방향을 정의 할 수 있습니다.델파이 TClientDataSet (삽입) 문제를
DBGrid의 소스 인 dataSource에 ClientDataSet이 연결되어 있습니다. 이제 ClientDataSet에 새 레코드를 삽입하면 테이블의 맨 위에 삽입 (ixDescending = false)되거나 테이블의 맨 아래에 삽입 (ixDescending = true)됩니다.
하지만 내림차순을 원하고 새 레코드가 테이블의 맨 위에 있어야합니다 (맨 아래가 아님). 나는 이것을 달성하기 위해 런타임에 indexDefs를 변경하려고 시도했지만 성공하지 못했습니다. 누군가이 방법을 알고 있습니까?
내가 이해하지 못한다. 색인 필드에 값을 설정하지 않으면 오름차순으로 표시된다. 새 레코드를 삽입하기 전에 이미 내림차순이 필요합니다. – ben
ClientDataset이 인덱스의 NULL 값을 처리하는 방법에 문제가있을 수 있습니다. 그것들은 다른 어떤 값보다 크거나 또는 더 작다고 생각할 수 있습니다. CDS가 후자의 규칙을 사용하고 내림차순을 사용하면 인덱스 된 필드에 NULL 값이있는 레코드가 맨 아래에 놓입니다. –
당신은 물론 맞습니다. 새로운 레코드를 게시하기 전에 채워지는 다른 인덱스 필드를 지금 선택했습니다. 이제는 어디에 있어야합니까? - 감사합니다;) – ben