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() - StartTimeNow if you don't mind, compare this for speed.