2012-07-04 6 views
0

정적이고 읽기 전용 인 메모리 구조를 가지고 있습니다. DB 그리드 등을 사용하여 데이터를보고 /보고 할 수 있도록 TDataSet 자손으로 데이터를 표시하고 싶습니다. 편집 할 필요가 없습니다 (실제로는 금지되어야합니다). 나는 this SO question과 일부 집에서 구운 코드에 '북마크에 문제가있다'는 다른 조언을 보았습니다. 난 단지 간단한 솔루션을 원한다. 그리고 내가 알고있는 필드 타입으로 간단한 '가상'테이블을 만들고 각각에 대해 'OnGetFieldData'이벤트를 부여 할 수있는 곳이 이상적이다. 내 다른 선택은 DevExpress TDxMemData 인 메모리 테이블을 사용하고 내 데이터의 변경 내용을 채우는 것입니다.하지만이 방법은 효율성이 떨어지고 지저분합니다. 다른 해결책이 있습니까?간단한 읽기 전용 TDataSet을 만들어 메모리 구조에 접근하는 방법

답변

1

TDataSet 자손을 사용하지 말고 대신 LiveBindings를 사용하십시오. 당신의 상황은 그들이 만들어 낸 것과 정확히 같습니다. 다음은 동영상 사용에 대한 동영상입니다. http://www.embarcadero.com/coderage/sessions

+0

Ah. 그 흥미 롭군요. 나는 그것을 시도 할 것이다. 감사. –

+0

음, LiveBinding 접근법을 시도해 보았지만 많은 것을 배웠지 만 내 딜레마를 해결하지 못합니다. TDBGrid를 'alternate'텍스트 (필요한 경우 내 메모리 구조에서 가져옴)를 표시하도록 가짜로 만들 수 있지만, 데이터의 소비자 (예 : FastReport)를 다음과 같이 만들려고하기 때문에 TDataSource 또는 TCLientDataSet의 하위 레벨에서이 가짜를 만들 필요가 있습니다. 내 변화를 봐. 필드의 GetText 이벤트를 사용하여 호출을 가로 채서 내 데이터를 삽입하여 솔루션을 얻었지만이를 호출하기 위해 테이블을 새로 고쳐야합니다. –

+0

TDataSet 자손이 필요한 구성 요소에 데이터를 삽입하는 유일한 방법 인 경우 LiveBinding이 도움이되지 않습니다. – Torbins