我有一個存儲過程連接的TADODataSet即產生40列* 800行 的TADODataSet具有分配OnGetText它的AfterOpen事件是場 這樣的:如何TADODataSet與字段文本不是場出口值
procedure TForm1.ADODataSet1AfterOpen(DataSet: TDataSet);
begin
with DataSet do
begin
Fields[4].DisplayLabel:=TR(AS2); //RefId
Fields[4].DisplayWidth:=8;
Fields[4].Tag:=1;
Fields[4].OnGetText:=RefGetText;
Fields[5].DisplayLabel:=TR(AS3); //ClientId
Fields[5].DisplayWidth:=8;
Fields[5].Tag:=1;
Fields[5].OnGetText:=ClientGetText;
end;
end;
procedure TForm1.RefGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if Sender.DataSet.FieldByName('RelStoreId').AsString='' then
Text:='NO REF ID'
else
KHDM.RefGetText(Sender,Text,DisplayText);
end;
procedure TForm1.ClientGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if Sender.DataSet.FieldByName('ClientId').AsString='' then
Text:='Client ID is not Assigned'
else
KHDM.ClientGetText(Sender,Text,DisplayText);
end;
我希望將數據導出到一個XML與文本 我不想讓字段和記錄的循環,因爲它是非常緩慢的 我想是批量複製到流或類似的東西
我無法改變我的工作方式因爲有大約800個模塊使用相同的方式...
請幫助。
你見過['這example'(http://www.swissdelphicenter.ch/torry/showcode.php?id=1498)? – TLama
是@TLama,但這不會導出字段的文本...因爲我重寫字段的OnGetText事件我想要提供的文本不是值...您的示例只導出來自來自Server引擎,並且不會接受onGetText事件中提供的文本值。 – user1512094
沒有辦法做到這一點沒有循環TDataSet AFAIK。 [這個例子](http://www.swissdelphicenter.ch/en/showcode.php?id=772)可能會有所幫助。 – kobik