如何使用字段文本而不是字段值导出TADODataSet

编程入门 行业动态 更新时间:2024-10-15 02:25:53
本文介绍了如何使用字段文本而不是字段值导出TADODataSet的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个与存储过程相连的TADODataSet,该存储过程产生40列* 800行,TADODataSet有一个AfterOpen事件,为该事件分配一个OnGetText就是字段,如:

I have a TADODataSet connected with a stored procedure which produce 40 Columns * 800 Row the TADODataSet has an AfterOpen event which assign an OnGetText for it is Fields like :

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在域和记录上循环,因为它非常慢我想要诸如大容量复制之类的东西流式传输或类似的东西

I want to export the data to an XML with the texts I don't want to make a loop on fields and records because it is very slow I want something like bulk copy to stream or something like that

我无法更改我的方式正在工作,因为大约有800个模块使用相同的方式...

I cannot change the way I'm working because there are around 800 module which using the same way...

请帮助。

推荐答案

我以前使用过这种技术-对您有帮助吗? 我可以看到输出的长度是个问题,但是您可能可以通过某种方式来简化它。也许看看ClientDataset.SavetoFile()方法

I have used this kind of technique before - Any Help to you ? I can see the length of the output is a problem but you might be able to fettle it somehow. Perhaps look at the ClientDataset.SavetoFile() Method

function DataSetToXml(const ADataSet : TOraQuery) : String; var Provider : TDataSetProvider; ClientDataSet : TClientDataset; begin Provider := TDataSetProvider.Create(nil); try Provider.Name := 'tmpProvider'; Provider.DataSet := ADataSet; ClientDataSet := TClientDataSet.Create(nil); try ClientDataSet.Data := Provider.Data; Result := ClientDataSet.XMLData; finally FreeAndNil(ClientDataSet); end; finally FreeAndNil(Provider); end; end;

更多推荐

如何使用字段文本而不是字段值导出TADODataSet

本文发布于:2023-11-27 13:08:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1638202.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字段   如何使用   而不是   文本   TADODataSet

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!