LOCAL lcBigXML >Close Databases all >*Start time >SET DECIMALS TO 3 > >USE C:\DEV\CSHARP\DEMO\DEMOS\DATA\CLIENT IN 0 > >SELECT * FROM Client WHERE UPPER(Cl_Sname) = "LAWRENCE" INTO CURSOR TEST NOFILTER > >=AFIELDS(laFields, "Test") > >StartTime = SECONDS() >Set Textmerge to memvar lcText noshow >Set Textmerge delimiters to "{{","}}" >Set Textmerge on >\local lcXml >\ lcXML ="<CLIENT>" > FOR f = 1 TO ALEN(laFields, 1) >\ lcXML = lcXML + "<{{Alltrim(laFields(f, 1))}}>" + ; >\ TRANSFORM(Test.{{Alltrim(laFields(f, 1))}}) +; >\ "</{{Alltrim(laFields(f, 1))}}>" > ENDFOR >\ lcXML = lcXML + "</CLIENT>" >\return lcXml >Set Textmerge to >StrToFile(lcText, "runner.prg") >Compile runner.prg >lcBigXml="<TEST>" >Scan > lcBigXml=lcBigXml+runner() >ENDSCAN > >lcBigXML = lcBigXML + "</TEST>" > >*Show Time-Taken >?SECONDS() - StartTime >>Now if you don't mind, compare this for speed.