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() - StartTimeRESULT : Between 0.040 and 0.070 Seconds
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) ; }RESULT : 0.0100143 Seconds