TLama 's는 좋은 제안입니다. 비슷한 맥락에서, 이것은 좀 더 직접적이다, 그리고
I : Integer;
ADataSet : TDataSet;
ADataSetName : String;
당신의 AssignFile()
ADataSet := Nil;
for I := 0 to Connection.DataSetCount - 1 do begin
if Connection.DataSets[I] is TCustomAdoDataSet then
if TCustomAdoDataset(Connection.DataSets[I]).Recordset = RecordSet then
ADataSet := Connection.DataSets[I];
end;
if ADataSet <> Nil then
ADataSetName := ADataSet.Name
else
ADataSetName := '';
그것은 때문에 작동하기 전에이 추가 :
이 이벤트 핸들러에 일부 변수를 추가 TAdoConnection 호출이 연결 속성이있는 TDataSet에 속성 값이 s 인 경우
procedure TCustomConnection.RegisterClient
연결에. 당신은 당신이 모든 데이터 세트의 컨트롤을 반복하고 자신의`Recordset`가 전달 된 하나와 같은지 여부를 확인 어쩌면 경우, 충분히 운이 좋다면
(D7, Win7에 64 비트 및 TAdoQuery 및 TAdoDatasets으로 테스트)
. 그러나 나는 그것을 시도한 적이 없으며 아마도 그것을하는 더 직접적인 방법이있을 것입니다. – TLama