如标题所示,使用Delphi2010和MyDAC 7.1,如何将整个字符串输出为类似于JSON / XML / CSV或其他纯文本选项的字符串?
例如产出:
{user_id:1;username:testuser;password:testpass}发布于 2014-10-15 14:50:27
假设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库(比如SuperObject),然后像这里一样使用它。
对于XML,在TXMLDocument中使用相同类型的循环。您可以在这里搜索使用Delphi标记的前几篇文章,以找到示例。
对于CSV,它可以根据您的数据和需求变得复杂。例如,您想要或需要有字段名的标题行吗?您的数据是否包含包含空格、标点符号或CR/LFs的数据?最简单的解决方案是搜索一个已经存在的库(通过Google或Bing,而不是这里),该库可以导出到CSV。
发布于 2014-10-15 11:48:51
根据文档,您可以使用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;https://stackoverflow.com/questions/26381150
复制相似问题