>>LOCAL lcXML >>lcXML = "<TEST>" >> >>*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() >> >>SCAN >> lcXML = lcXML + "<CLIENT>" >> FOR f = 1 TO ALEN(laFields, 1) >> lcXML = lcXML + "<" + laFields(f, 1) + ">" + ; >> TRANSFORM(EVALUATE("Test." + laFields(f, 1))) +; >> "</" + laFields(f, 1) + ">" >> ENDFOR >> lcXML = lcXML + "</CLIENT>" >>ENDSCAN >> >>lcXML = lcXML + "</TEST>" >> >>*Show Time-Taken >>?SECONDS() - StartTime >>>>
>>public static void DataPerformance() >> { >> //Use Local FoxDB with lots of data >> OleDbConnection Connection = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=c:\dev\csharp\Demo\Demos\Data\Client.DBF") ; >> OleDbDataAdapter Result = new OleDbDataAdapter("SELECT * FROM Client WHERE UPPER(Cl_Sname) = 'LAWRENCE'", Connection) ; >> DataSet Cursor = new DataSet() ; >> Result.Fill(Cursor, "CLIENT") ; >> StringBuilder XML = new StringBuilder() ; >> DataColumn[] Columns = new DataColumn[Cursor.Tables["Client"].Columns.Count]; >> Cursor.Tables["Client"].Columns.CopyTo(Columns, 0) ; >> >> //Start time >> DateTime StartTime = DateTime.Now; >> >> XML.Append("<Test>") ; >> //Build XML Result >> //Scans through what would be a local-cursor in Fox >> foreach (DataRow Row in Cursor.Tables["CLIENT"].Rows) >> { >> XML.Append("<CLIENT>") ; >> for (int c = 0; c < Columns.Length; c++) >> { >> XML.Append("<" + Columns[c].ColumnName + ">" + Row[Columns[c].ColumnName].ToString() + >> "</" + Columns[c].ColumnName + ">") ; >> } >> XML.Append("</CLIENT>") ; >> } >> >> XML.Append("</Test>") ; >> >> //End Time >> DateTime EndTime = DateTime.Now ; >> >> //End >> Console.WriteLine(StartTime) ; >> Console.WriteLine(EndTime) ; >> Console.WriteLine(EndTime-StartTime) ; >>} >>>>
>*Start time >StartTime = SECONDS() >LOCAL lcXML > >SELECT * ; > FROM "C:\DEV\CSHARP\DEMO\DEMOS\DATA\CLIENT" ; > WHERE UPPER(Cl_Sname) = "LAWRENCE" ; > INTO CURSOR TEST > >=AFIELDS(laFields, "Test") > >lcTemp = Sys(2015)+'.tmp' >lnHandle = fcreate(lcTemp) >Fputs(m.lnHandle,'<TEST>') >SCAN > Fputs(m.lnHandle,"<CLIENT>") > FOR f = 1 TO ALEN(laFields, 1) > Fputs(m.lnHandle,"<" + laFields(m.f, 1) + ">" + ; > TRANSFORM(EVALUATE("Test." + laFields(m.f, 1))) +; > "</" + laFields(m.f, 1) + ">") > ENDFOR > Fputs(m.lnHandle,"</CLIENT>") >ENDSCAN >Fputs(m.lnHandle,"</TEST>") >Fclose(m.lnHandle) >lcXML = FileToStr(m.lcTemp) >*Show Time-Taken >Erase (m.lcTemp) >?SECONDS() - StartTime >Cetin