Witam społeczność,
Mam taki kod:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
ComObj,
Data.DB,
Data.Win.ADODB,
System.Variants,
System.DateUtils,
XMLDoc,
XMLIntf,
Xml.xmldom;
var
config: IXMLDocument;
sqlsrv, sqluser, sqlpass, sqldb: string;
query: TADOQuery;
connStr: string;
path, sqlquery: string;
f: TextFile;
i: integer;
s: string;
MainNode: IXMLNode;
//ds: TDataSet;
begin
CoInitializeEx(nil, 0);
config := NewXMLDocument('1.0');
config.LoadFromFile(ParamStr(1));
MainNode := config.DocumentElement;
sqlsrv := MainNode.ChildNodes[0].ChildNodes[0].Text;
sqluser := MainNode.ChildNodes[0].ChildNodes[2].Text;
sqlpass := MainNode.ChildNodes[0].ChildNodes[3].Text;
sqldb := MainNode.ChildNodes[0].ChildNodes[1].Text;
path := MainNode.ChildNodes[1].ChildNodes[0].Text;
sqlquery := MainNode.ChildNodes[2].ChildNodes[0].Text;
connStr := 'Provider=SQLOLEDB.1;Password=' + sqlpass + ';Persist Security Info=True;User ID=' + sqluser + ';Initial Catalog=' + sqldb + ';Data Source=' + sqlsrv;
query := TADOQuery.Create(nil);
query.ConnectionString := connStr;
query.SQL.Text := sqlquery;
query.Active := True;
AssignFile(f, path);
Rewrite(f);
for i := 0 to query.RecordCount - 1 do
begin
s := query.Fields[0].AsString;
Write(f, s);
query.Next;
end;
CloseFile(f);
end.
W pliku XML mam zapytanie, które kończy się FOR JSON AUTO, ROOT('root')
I wtedy mi wszystko działa. Plik z wynikiem JSON mi się zapisuje i jest ok.
Ale kiedy zmienię na: FOR XML AUTO, ROOT('root'), to wtedy zapisuje mi się totalna sieczka.
Jak to ogarnąć?