首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用MyDAC的Delphi中,如何将整个记录写成字符串?

在使用MyDAC的Delphi中,如何将整个记录写成字符串?
EN

Stack Overflow用户
提问于 2014-10-15 11:14:12
回答 2查看 653关注 0票数 0

如标题所示,使用Delphi2010和MyDAC 7.1,如何将整个字符串输出为类似于JSON / XML / CSV或其他纯文本选项的字符串?

例如产出:

代码语言:javascript
复制
{user_id:1;username:testuser;password:testpass}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-15 14:50:27

假设MyDAC是标准的TDataSet后代,则可以手动构建字符串。例如,对于JSON:

代码语言:javascript
复制
var
  i: Integer;
  Output: string;
begin
  Output := '{';                                        // #123;
  for i := 0 to MyQry.FieldCount - 1 do
    Output := Output + 
              MyQry.Fields[i].FieldName + ':' +         // #58
              MyQry.Fields[i].AsString + ';';           // #59
  // Replace final ; with closing } instead
  Output[Length(Output)] := '}';                        // #125
end;

或者你可以谷歌找到一个Delphi库(比如SuperObject),然后像这里一样使用它。

对于XML,在TXMLDocument中使用相同类型的循环。您可以在这里搜索使用Delphi标记的前几篇文章,以找到示例。

对于CSV,它可以根据您的数据和需求变得复杂。例如,您想要或需要有字段名的标题行吗?您的数据是否包含包含空格、标点符号或CR/LFs的数据?最简单的解决方案是搜索一个已经存在的库(通过Google或Bing,而不是这里),该库可以导出到CSV。

票数 1
EN

Stack Overflow用户

发布于 2014-10-15 11:48:51

根据文档,您可以使用SaveToXML过程。应该是这样的:

代码语言:javascript
复制
var
  MyQuery: TMyQuery;

begin

  try
    MyQuery := TMyQuery.Create();
    MyQuery.Connection := AConnection;
    MyQuery.SQL.Text := ACommand;

    MyQuery.Execute();
    MyQuery.SaveToXML(<tstream or file>)

  except
    raise;
  end;
end;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26381150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档