public static void DataSetTest(MainForm frm) { string dbPlatformDesc = DatabasePlatform.Unknown.ToString(); PFDatabase db = null; string connStr = string.Empty; string nmSpace = string.Empty; string clsName = string.Empty; string dllPath = string.Empty; Stopwatch sw = new Stopwatch(); try { _msg.Length = 0; _msg.Append("DataSetTest started ...\r\n"); Program._messageLog.WriteLine(_msg.ToString()); string[] parsedConnectionInfo = frm.cboConnectionString.Text.Split('|'); dbPlatformDesc = parsedConnectionInfo[0]; connStr = parsedConnectionInfo[1]; string configValue = AppConfig.GetStringValueFromConfigFile(dbPlatformDesc, string.Empty); string[] parsedConfig = configValue.Split('|'); nmSpace = parsedConfig[0]; clsName = parsedConfig[1]; dllPath = parsedConfig[2]; if (frm.txtSQLQuery.Text.Length == 0) { throw new System.Exception("You must specify a SQL query to run."); } _msg.Length = 0; _msg.Append("Connecting to "); _msg.Append(dbPlatformDesc); Program._messageLog.WriteLine(_msg.ToString()); sw.Start(); db = new PFDatabase(dbPlatformDesc, dllPath, nmSpace + "." + clsName); db.ConnectionString = connStr; db.OpenConnection(); db.SQLQuery = frm.txtSQLQuery.Text; db.CommandType = CommandType.Text; sw.Stop(); _msg.Length = 0; _msg.Append("Open connection time: "); _msg.Append(sw.FormattedElapsedTime); Program._messageLog.WriteLine(_msg.ToString()); sw.Start(); DataSet ds1 = db.RunQueryDataSet(); db.returnResult += new PFDatabase.ResultDelegate(OutputResults); db.ProcessDataSet(ds1); sw.Stop(); _msg.Length = 0; _msg.Append("Process Dataset time: "); _msg.Append(sw.FormattedElapsedTime); Program._messageLog.WriteLine(_msg.ToString()); //Run data extract test Program._messageLog.WriteLine("\r\nRunning data extract tests ...\r\n"); db.returnResultAsString += new PFDatabase.ResultAsStringDelegate(OutputResultsToFile); if (_textFile.FileIsOpen) { _textFile.CloseFile(); } _textFile.OpenFile(@"c:\temp\DatasetDelimitedTestExtract.txt", PFFileOpenOperation.OpenFileForWrite); sw.Start(); DataSet ds = db.RunQueryDataSet(); db.ExtractDelimitedDataFromDataSet(ds, "~", "\r\n", true); sw.Stop(); _msg.Length = 0; _msg.Append("Extract Delimiated Dataset time: "); _msg.Append(sw.FormattedElapsedTime); Program._messageLog.WriteLine(_msg.ToString()); if (_textFile.FileIsOpen) { _textFile.CloseFile(); } _textFile.OpenFile(@"c:\temp\DatasetFixedLengthTestExtract.txt", PFFileOpenOperation.OpenFileForWrite); ds = null; sw.Start(); ds = db.RunQueryDataSet(); db.ExtractFixedLengthDataFromDataSet(ds, true, true, false); sw.Stop(); _msg.Length = 0; _msg.Append("Extract Fixed Length Dataset time: "); _msg.Append(sw.FormattedElapsedTime); Program._messageLog.WriteLine(_msg.ToString()); db.SaveDataSetToXmlSchemaFile(ds, @"c:\temp\Testds.xsd"); db.SaveDataSetToXmlFile(ds, @"c:\temp\Testds.xml"); db.SaveDataSetWithSchemaToXmlFile(ds, @"c:\temp\Testdsplus.xml"); DataSet ds2 = db.LoadXmlFileToDataSet(@"c:\temp\Testds.xml");; int numRows = ds2.Tables[0].Rows.Count; PFDataProcessor dataProcessor = new PFDataProcessor(); XmlDocument xmlDoc = dataProcessor.CopyDataSetToXmlDocument(ds); Program._messageLog.WriteLine(xmlDoc.OuterXml); if (_textFile.FileIsOpen) { _textFile.CloseFile(); } ds = null; } catch (System.Exception ex) { _msg.Length = 0; _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex)); Program._messageLog.WriteLine(_msg.ToString()); AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog); } finally { if (db != null) { if (db.IsConnected) { db.CloseConnection(); } db = null; } _msg.Length = 0; _msg.Append("\r\n... DataSetTest finished."); Program._messageLog.WriteLine(_msg.ToString()); } }