0

正如标题所示,使用 Delphi 2010 和 MyDAC 7.1,如何将整个字符串输出为 JSON / XML / CSV 或其他纯文本选项等字符串?

例如输出:

{user_id:1;username:testuser;password:testpass}
4

2 回答 2

1

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

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;
于 2014-10-15T11:48:51.017 回答
1

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

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 JSON 库(如SuperObject)并使用它,就像在这里所做的那样。

对于 XML,使用与 TXMLDocument 相同的类型循环。您可以在此处搜索带有 Delphi 标记的以前的帖子以查找示例。

对于 CSV,它可能会根据您的数据和要求变得复杂。例如,您是否想要或需要带有字段名称的标题行?您的数据是否包含包含空格或标点符号或 CR/LF 的数据?最简单的解决方案是搜索导出为 CSV 的现有库(通过 Google 或 Bing,而不是此处)。

于 2014-10-15T14:50:27.307 回答