簡體   English   中英

在使用MyDAC的Delphi中,如何將整個記錄寫為字符串?

[英]In Delphi using MyDAC, how do I write an entire record as a string?

如標題所示,如何使用Delphi 2010和MyDAC 7.1將整個字符串輸出為JSON / XML / CSV或其他純文本選項之類的字符串?

例如輸出:

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

根據文檔,您可以使用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;

假定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;

或者,您可以通過Google找到一個Delphi JSON庫(例如SuperObject )並使用它,如此處所示

對於XML,請對TXMLDocument使用相同的類型循環。 您可以在此處搜索以前用Delphi標記的帖子,以查找示例。

對於CSV,根據您的數據和要求,它可能會變得復雜。 例如,您是否需要帶有字段名稱的標題行? 您的數據是否包含包含空格或標點符號或CR / LF的數據? 最簡單的解決方案是搜索導出到CSV的現有庫(通過Google或Bing,不在此處)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM