예제 #1
0
        public static void RunQuickTest2()
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;

            sqlserv.ServerName             = "profastws1";
            sqlserv.DatabaseName           = "Namelists";
            sqlserv.UseIntegratedSecurity  = true;
            sqlserv.AsynchronousProcessing = true;
            connectionString = sqlserv.ConnectionString;
            _msg.Length      = 0;
            _msg.Append("Connection string is:\r\n");
            _msg.Append(sqlserv.ConnectionString);
            Program._messageLog.WriteLine(_msg.ToString());

            sqlserv.DatabaseName           = "AdventureWorksDW";
            sqlserv.AsynchronousProcessing = false;
            connectionString = sqlserv.ConnectionString;
            _msg.Length      = 0;
            _msg.Append("Connection string is:\r\n");
            _msg.Append(sqlserv.ConnectionString);
            Program._messageLog.WriteLine(_msg.ToString());

            sqlserv = null;
            Program._messageLog.WriteLine("QuickTest2 finished.");
        }
예제 #2
0
        private string GetConnectionString()
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;

            try
            {
                sqlserv.ServerName            = this.txtServerName.Text;
                sqlserv.DatabaseName          = this.txtDatabaseName.Text;
                sqlserv.UseIntegratedSecurity = this.chkUseIntegratedSecurity.Checked;
                sqlserv.ApplicationName       = this.txtApplicationName.Text;
                sqlserv.WorkstationId         = this.txtWorkstationId.Text;
                sqlserv.Username = this.txtUsername.Text;
                sqlserv.Password = this.txtPassword.Text;

                connectionString = sqlserv.ConnectionString;
            }
            catch (System.Exception ex)
            {
                this.OutputErrorMessageToLog(ex);
            }
            finally
            {
                if (sqlserv != null)
                {
                    sqlserv = null;
                }
            }

            return(connectionString);
        }
예제 #3
0
        }//end MessageLogTest

        public static void ConnectionStringTest()
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;

            try
            {
                sqlserv.ServerName             = _frm.txtServerName.Text;
                sqlserv.DatabaseName           = _frm.txtDatabaseName.Text;
                sqlserv.UseIntegratedSecurity  = _frm.chkUseIntegratedSecurity.Checked;
                sqlserv.AsynchronousProcessing = _frm.chkUseAsyncProcessing.Checked;
                sqlserv.ApplicationName        = _frm.txtApplicationName.Text;
                sqlserv.WorkstationId          = _frm.txtWorkstationId.Text;
                sqlserv.Username = _frm.txtUsername.Text;
                sqlserv.Password = _frm.txtPassword.Text;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());

                Program._messageLog.WriteLine(Environment.NewLine);
                foreach (stKeyValuePair <string, string> kv in sqlserv.ConnectionStringKeyVals)
                {
                    _msg.Length = 0;
                    _msg.Append(kv.Key + "=" + kv.Value);
                    Program._messageLog.WriteLine(_msg.ToString());
                }
                Program._messageLog.WriteLine(Environment.NewLine);
            }
            catch (System.Exception ex)
            {
                _frm.OutputErrorMessageToLog(ex);
            }
            finally
            {
                ;
            }
        }
예제 #4
0
        public static void ImportDataTableTest()
        {
            PFSQLServer db = new PFSQLServer();
            string      connectionString = string.Empty;

            try
            {
                _msg.Length = 0;
                _msg.Append("ImportDataTableTest started ...");
                Program._messageLog.WriteLine(_msg.ToString());

                db.ServerName             = _frm.txtServerName.Text;
                db.DatabaseName           = _frm.txtDatabaseName.Text;
                db.UseIntegratedSecurity  = _frm.chkUseIntegratedSecurity.Checked;
                db.AsynchronousProcessing = _frm.chkUseAsyncProcessing.Checked;
                db.ApplicationName        = _frm.txtApplicationName.Text;
                db.WorkstationId          = _frm.txtWorkstationId.Text;
                db.Username = _frm.txtUsername.Text;
                db.Password = _frm.txtPassword.Text;

                connectionString = db.ConnectionString;



                db.OpenConnection();

                StringBuilder sql        = new StringBuilder();
                DataTable     dt         = _frm.keyValsDataSet.Tables["dbo.KeyValTable"];
                string        schemaName = "dbo";
                string        tableName  = "KeyValTable";


                //first delete table if it already exists
                _msg.Length = 0;
                _msg.Append("\r\nTable ");
                _msg.Append(dt.TableName);
                if (db.TableExists(schemaName, tableName))
                {
                    db.DropTable(schemaName, tableName);
                    if (db.TableExists(schemaName, tableName) == false)
                    {
                        _msg.Append(" dropped.");
                    }
                    else
                    {
                        _msg.Append(" drop failed.");
                    }
                }
                else
                {
                    _msg.Append(" does not exist.");
                }

                Program._messageLog.WriteLine(_msg.ToString());

                Program._messageLog.WriteLine("\r\nCreating a table in the database ...");

                //create the table
                db.CreateTable(dt);

                db.ImportDataFromDataTable(dt, 1000);

                db.CloseConnection();
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                _msg.Length = 0;
                _msg.Append("... ImportDataTableTest finished.");
                Program._messageLog.WriteLine(_msg.ToString());
            }
        }
예제 #5
0
        }//end DataTableTest

        public static void DataSetTest()
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;
            Stopwatch   sw = new Stopwatch();

            try
            {
                sqlserv.ServerName             = _frm.txtServerName.Text;
                sqlserv.DatabaseName           = _frm.txtDatabaseName.Text;
                sqlserv.UseIntegratedSecurity  = _frm.chkUseIntegratedSecurity.Checked;
                sqlserv.AsynchronousProcessing = _frm.chkUseAsyncProcessing.Checked;
                sqlserv.ApplicationName        = _frm.txtApplicationName.Text;
                sqlserv.WorkstationId          = _frm.txtWorkstationId.Text;
                sqlserv.Username = _frm.txtUsername.Text;
                sqlserv.Password = _frm.txtPassword.Text;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());

                if (_frm.txtSQLQuery.Text.Length == 0)
                {
                    throw new System.Exception("You must specify a SQL query to run.");
                }

                sqlserv.OpenConnection();

                sqlserv.SQLQuery = _frm.txtSQLQuery.Text;
                if (_frm.chkIsStoredProcedure.Checked)
                {
                    sqlserv.CommandType = CommandType.StoredProcedure;
                }
                else
                {
                    sqlserv.CommandType = CommandType.Text;
                }

                sw.Start();
                DataSet ds1 = sqlserv.RunQueryDataSet();
                sqlserv.returnResult += new PFSQLServer.ResultDelegate(OutputResults);
                sqlserv.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");
                sqlserv.returnResultAsString += new PFSQLServer.ResultAsStringDelegate(OutputResultsToFile);
                if (_textFile.FileIsOpen)
                {
                    _textFile.CloseFile();
                }
                _textFile.OpenFile(@"c:\temp\DatasetDelimitedTestExtract.txt", PFFileOpenOperation.OpenFileForWrite);
                sw.Start();
                DataSet ds = sqlserv.RunQueryDataSet();
                sqlserv.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 = sqlserv.RunQueryDataSet();
                sqlserv.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());

                sqlserv.SaveDataSetToXmlSchemaFile(ds, @"c:\temp\Testds.xsd");
                sqlserv.SaveDataSetToXmlFile(ds, @"c:\temp\Testds.xml");
                sqlserv.SaveDataSetWithSchemaToXmlFile(ds, @"c:\temp\Testdsplus.xml");
                DataSet ds2     = sqlserv.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)
            {
                _frm.OutputErrorMessageToLog(ex);
            }
            finally
            {
                sqlserv.CloseConnection();
                sqlserv = null;
            }
        }
예제 #6
0
        public static void DataTableTest()
        {
            PFSQLServer           sqlserv          = new PFSQLServer();
            string                connectionString = string.Empty;
            Stopwatch             sw            = new Stopwatch();
            PFDataExporter        dex           = new PFDataExporter();
            PFDelimitedDataLine   delimitedLine = null;
            PFFixedLengthDataLine fixedLenLine  = null;

            try
            {
                sqlserv.ServerName             = _frm.txtServerName.Text;
                sqlserv.DatabaseName           = _frm.txtDatabaseName.Text;
                sqlserv.UseIntegratedSecurity  = _frm.chkUseIntegratedSecurity.Checked;
                sqlserv.AsynchronousProcessing = _frm.chkUseAsyncProcessing.Checked;
                sqlserv.ApplicationName        = _frm.txtApplicationName.Text;
                sqlserv.WorkstationId          = _frm.txtWorkstationId.Text;
                sqlserv.Username = _frm.txtUsername.Text;
                sqlserv.Password = _frm.txtPassword.Text;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());

                if (_frm.txtSQLQuery.Text.Length == 0)
                {
                    throw new System.Exception("You must specify a SQL query to run.");
                }

                sw.Start();

                sqlserv.OpenConnection();

                sqlserv.SQLQuery = _frm.txtSQLQuery.Text;
                if (_frm.chkIsStoredProcedure.Checked)
                {
                    sqlserv.CommandType = CommandType.StoredProcedure;
                }
                else
                {
                    sqlserv.CommandType = CommandType.Text;
                }

                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Open connection time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());

                sw.Start();

                DataTable tab1 = sqlserv.RunQueryDataTable();
                sqlserv.returnResult += new PFSQLServer.ResultDelegate(OutputResults);
                sqlserv.ProcessDataTable(tab1);

                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Process Table time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());


                if (_textFile.FileIsOpen)
                {
                    _textFile.CloseFile();
                }
                _textFile.OpenFile(@"c:\temp\TableTestExtract.txt", PFFileOpenOperation.OpenFileForWrite);

                //sw.Start();
                DataTable tab = sqlserv.RunQueryDataTable();
                //sqlserv.returnResultAsString += new PFSQLServer.ResultAsStringDelegate(OutputExtractFormattedData);
                sqlserv.returnResultAsString += new PFSQLServer.ResultAsStringDelegate(OutputResultsToFile);
                sqlserv.ExtractDelimitedDataFromTable(tab, ",", "\r\n", true);
                delimitedLine = dex.GetDelimitedLineDefinitionFromTable(tab, ",", "\r\n", true);
                delimitedLine.SaveToXmlFile(@"c:\temp\TableTestExtractLineFormat.xml");
                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Extract Delimiated Table time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());
                tab = null;
                sw.Start();

                if (_textFile.FileIsOpen)
                {
                    _textFile.CloseFile();
                }
                _textFile.OpenFile(@"c:\temp\TableTestExtractFxl.txt", PFFileOpenOperation.OpenFileForWrite);
                tab = sqlserv.RunQueryDataTable();
                sqlserv.ExtractFixedLengthDataFromTable(tab, true, true, false);
                fixedLenLine = dex.GetFixedLengthLineDefinitionFromTable(tab, true, true, false);
                fixedLenLine.SaveToXmlFile(@"c:\temp\TableTestExtractFxlLineFormat.xml");
                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Extract Fixed Length Table time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());

                sw.Start();

                if (_textFile.FileIsOpen)
                {
                    _textFile.CloseFile();
                }
                _textFile.OpenFile(@"c:\temp\TableTestExtractFxlNoCrLf.txt", PFFileOpenOperation.OpenFileForWrite);
                tab = sqlserv.RunQueryDataTable();
                sqlserv.ExtractFixedLengthDataFromTable(tab, false, true, false);
                fixedLenLine = dex.GetFixedLengthLineDefinitionFromTable(tab, false, true, false);
                fixedLenLine.SaveToXmlFile(@"c:\temp\TableTestExtractFxlNoCrLfLineFormat.xml");
                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Extract Fixed Length (No CrLf) Table time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());


                sqlserv.SaveDataTableToXmlSchemaFile(tab, @"c:\temp\Testtab.xsd");
                sqlserv.SaveDataTableToXmlFile(tab, @"c:\temp\Testtab.xml");
                sqlserv.SaveDataTableWithSchemaToXmlFile(tab, @"c:\temp\Testtabplus.xml");
                DataTable tab2    = sqlserv.LoadXmlFileToDataTable(@"c:\temp\Testtabplus.xml");;
                int       numRows = tab2.Rows.Count;

                //StringWriter writer = new StringWriter();
                //tab.WriteXml(writer, XmlWriteMode.WriteSchema);
                //XmlDocument xmlDoc = new XmlDocument();
                //xmlDoc.LoadXml(writer.ToString());
                PFDataProcessor dataProcessor = new PFDataProcessor();
                XmlDocument     xmlDoc        = dataProcessor.CopyDataTableToXmlDocument(tab);
                Program._messageLog.WriteLine("\r\n" + xmlDoc.OuterXml + "\r\n");
            }
            catch (System.Exception ex)
            {
                _frm.OutputErrorMessageToLog(ex);
            }
            finally
            {
                sqlserv.CloseConnection();
                sqlserv = null;
                if (_textFile.FileIsOpen)
                {
                    _textFile.CloseFile();
                }
            }
        }//end DataTableTest
예제 #7
0
        public static void DataReaderToDataTableTest()
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;
            Stopwatch   sw = new Stopwatch();

            try
            {
                sqlserv.ServerName             = _frm.txtServerName.Text;
                sqlserv.DatabaseName           = _frm.txtDatabaseName.Text;
                sqlserv.UseIntegratedSecurity  = _frm.chkUseIntegratedSecurity.Checked;
                sqlserv.AsynchronousProcessing = _frm.chkUseAsyncProcessing.Checked;
                sqlserv.ApplicationName        = _frm.txtApplicationName.Text;
                sqlserv.WorkstationId          = _frm.txtWorkstationId.Text;
                sqlserv.Username = _frm.txtUsername.Text;
                sqlserv.Password = _frm.txtPassword.Text;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());

                if (_frm.txtSQLQuery.Text.Length == 0)
                {
                    throw new System.Exception("You must specify a SQL query to run.");
                }

                sw.Start();

                sqlserv.OpenConnection();

                sqlserv.SQLQuery = _frm.txtSQLQuery.Text;
                if (_frm.chkIsStoredProcedure.Checked)
                {
                    sqlserv.CommandType = CommandType.StoredProcedure;
                }
                else
                {
                    sqlserv.CommandType = CommandType.Text;
                }

                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Open connection time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());

                sw.Start();

                SqlDataReader rdr = (SqlDataReader)sqlserv.RunQueryDataReader();
                DataTable     tab = sqlserv.ConvertDataReaderToDataTable(rdr);
                Program._messageLog.WriteLine("Table columns count: " + tab.Columns.Count.ToString());
                rdr.Close();

                for (int i = 0; i < tab.Rows.Count; i++)
                {
                    DataRow r = tab.Rows[i];
                    _msg.Length = 0;
                    int maxColInx = tab.Columns.Count - 1;
                    for (int ci = 0; ci <= maxColInx; ci++)
                    {
                        _msg.Append(tab.Columns[ci].ColumnName);
                        _msg.Append(": ");
                        _msg.Append(r[ci].ToString());
                        if (ci < maxColInx)
                        {
                            _msg.Append(", ");
                        }
                    }
                    Program._messageLog.WriteLine(_msg.ToString());
                }

                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Table read time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());
            }
            catch (System.Exception ex)
            {
                _frm.OutputErrorMessageToLog(ex);
            }
            finally
            {
                sqlserv.CloseConnection();
                sqlserv = null;
            }
        }
예제 #8
0
        public static void CreateTableTest()
        {
            PFSQLServer         sqlserv          = new PFSQLServer();
            string              connectionString = string.Empty;
            string              createScript     = string.Empty;
            string              tableName        = "TestTable01";
            string              schemaName       = "dbo";
            StringBuilder       sql          = new StringBuilder();
            PFUnitTestDataTable unitTestDt01 = null;
            PFUnitTestDataTable unitTestDt02 = null;

            try
            {
                sqlserv.ServerName             = _frm.txtServerName.Text;
                sqlserv.DatabaseName           = _frm.txtDatabaseName.Text;
                sqlserv.UseIntegratedSecurity  = _frm.chkUseIntegratedSecurity.Checked;
                sqlserv.AsynchronousProcessing = _frm.chkUseAsyncProcessing.Checked;
                sqlserv.ApplicationName        = _frm.txtApplicationName.Text;
                sqlserv.WorkstationId          = _frm.txtWorkstationId.Text;
                sqlserv.Username = _frm.txtUsername.Text;
                sqlserv.Password = _frm.txtPassword.Text;
                if (_frm.txtSchemaName.Text.Length > 0)
                {
                    schemaName = _frm.txtSchemaName.Text;
                }
                if (_frm.txtTableName.Text.Length > 0)
                {
                    tableName = _frm.txtTableName.Text;
                }

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());

                sqlserv.OpenConnection();

                IDatabaseProvider db = (IDatabaseProvider)sqlserv;

                unitTestDt01 = new PFUnitTestDataTable(db, "dbo", "TestTable01", true);
                unitTestDt02 = new PFUnitTestDataTable(db, "dbo", "TestTable02", true);

                _msg.Length = 0;
                _msg.Append("Initializing TableColumns");
                Program._messageLog.WriteLine(_msg.ToString());

                //select which data types to include
                List <KeyValuePair <string, string> > dataTypesToInclude = new List <KeyValuePair <string, string> >();

                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Int32", "1"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.String", "this is a string value"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Int32", "1123456789"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.UInt32", "3123456789"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Int64", "23123456789"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.UInt64", "8881234567889"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Int16", "11123"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.UInt16", "52432"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Double", "123456.7654"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Single", "321.234"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Decimal", "2123456789.22"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Char", "A"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Char[]", "ABCDEFGH"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Byte", "254"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.SByte", "125"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Byte[]", "UVWZYZ));"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Boolean", "true"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Object", "This is an object: be careful!"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.DateTime", "5/31/2013 13:54:25"));
                dataTypesToInclude.Add(new KeyValuePair <string, string>("System.Guid", "58a4a08d-6101-4393-86dc-b2a8db46ec0f"));

                unitTestDt01.SetDataTypesToInclude(dataTypesToInclude);
                unitTestDt01.SetDataTypeOptions("System.String", false, true, 75);


                unitTestDt02.SetDataTypesToInclude(dataTypesToInclude);
                unitTestDt02.SetDataTypeOptions("System.String", false, true, 75000);

                //create the table

                _msg.Length = 0;
                _msg.Append("Creating tables");
                Program._messageLog.WriteLine(_msg.ToString());

                unitTestDt01.CreateTableFromTableColumns();
                unitTestDt02.CreateTableFromTableColumns();

                createScript = unitTestDt01.TableCreateScript;

                //DataTable testTab = sqlserv.RunQueryDataTable("select * from TestTable01", CommandType.Text);
                //_msg.Length = 0;
                //_msg.Append("testTab row count: ");
                //_msg.Append(testTab.Rows.Count.ToString());
                //Program._messageLog.WriteLine(_msg.ToString());


                //import data to database

                _msg.Length = 0;
                _msg.Append("Importing data to TestTable01");
                Program._messageLog.WriteLine(_msg.ToString());

                unitTestDt01.ImportTableToDatabase();

                _msg.Length = 0;
                _msg.Append("Importing data to TestTable02");
                Program._messageLog.WriteLine(_msg.ToString());

                unitTestDt02.ImportTableToDatabase();


                //retrieve just created table and see what data types get assigned to data table columns

                Program._messageLog.WriteLine("\r\nRead row just created for TestTable01\r\n");

                sql.Length = 0;
                sql.Append("select * from ");
                sql.Append("dbo.TestTable01");

                DataTable testTab = db.RunQueryDataTable(sql.ToString(), CommandType.Text);

                for (int c = 0; c < testTab.Columns.Count; c++)
                {
                    _msg.Length = 0;
                    _msg.Append(testTab.Columns[c].ColumnName);
                    _msg.Append(", ");
                    _msg.Append(testTab.Columns[c].DataType.FullName);
                    _msg.Append(", ");
                    _msg.Append(testTab.Columns[c].MaxLength.ToString());
                    Program._messageLog.WriteLine(_msg.ToString());
                }


                /*
                 * //first delete table if it already exists
                 * Program._messageLog.WriteLine("\r\nDropping old table if it exists ...");
                 *
                 * _msg.Length = 0;
                 * _msg.Append("Table ");
                 * _msg.Append(schemaName);
                 * _msg.Append(".");
                 * _msg.Append(tableName);
                 * if (sqlserv.TableExists(schemaName, tableName))
                 * {
                 *  sqlserv.DropTable(schemaName, tableName);
                 *  if (sqlserv.TableExists(schemaName, tableName) == false)
                 *      _msg.Append(" dropped.");
                 *  else
                 *      _msg.Append(" drop failed.");
                 * }
                 * else
                 * {
                 *  _msg.Append(" does not exist.");
                 * }
                 *
                 * Program._messageLog.WriteLine(_msg.ToString());
                 *
                 * //sql.Length = 0;
                 * //sql.Append("IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'");
                 * //sql.Append(tableName);
                 * //sql.Append("') AND type in (N'U'))");
                 * //sql.Append("\r\n");
                 * //sql.Append("DROP TABLE ");
                 * //sql.Append(tableName);
                 * //sql.Append(";");
                 *
                 * //Program._messageLog.WriteLine(sql.ToString());
                 *
                 * //int numRows = sqlserv.RunNonQuery(sql.ToString(),CommandType.Text);
                 *
                 * //_msg.Length = 0;
                 * //_msg.Append("Num rows affected on drop table: ");
                 * //_msg.Append(numRows.ToString());
                 * //Program._messageLog.WriteLine(_msg.ToString());
                 *
                 * Program._messageLog.WriteLine("\r\nCreating a table in the database ...");
                 * DataTable dt = new DataTable(schemaName + "." + tableName);
                 * DataColumn k1 = new DataColumn("K1", Type.GetType("System.Int32"));
                 * k1.AllowDBNull = false;
                 * dt.Columns.Add(k1);
                 * DataColumn f1 = new DataColumn("F1", Type.GetType("System.String"));
                 * f1.MaxLength = 50;
                 * dt.Columns.Add(f1);
                 * DataColumn f1a = new DataColumn("F1A", Type.GetType("System.String"));
                 * f1a.MaxLength = 50000;
                 * dt.Columns.Add(f1a);
                 * DataColumn f2 = new DataColumn("F2", Type.GetType("System.Int32"));
                 * dt.Columns.Add(f2);
                 * DataColumn f2a = new DataColumn("F2A", Type.GetType("System.UInt32"));
                 * dt.Columns.Add(f2a);
                 * DataColumn f3 = new DataColumn("F3", Type.GetType("System.Int64"));
                 * dt.Columns.Add(f3);
                 * DataColumn f3a = new DataColumn("F3A", Type.GetType("System.UInt64"));
                 * dt.Columns.Add(f3a);
                 * DataColumn f4 = new DataColumn("F4", Type.GetType("System.Int16"));
                 * dt.Columns.Add(f4);
                 * DataColumn f4a = new DataColumn("F4A", Type.GetType("System.UInt16"));
                 * dt.Columns.Add(f4a);
                 * DataColumn f5 = new DataColumn("F5", Type.GetType("System.Double"));
                 * dt.Columns.Add(f5);
                 * DataColumn f6 = new DataColumn("F6", Type.GetType("System.Single"));
                 * dt.Columns.Add(f6);
                 * DataColumn f7 = new DataColumn("F7", Type.GetType("System.Decimal"));
                 * dt.Columns.Add(f7);
                 * DataColumn f8 = new DataColumn("F8", Type.GetType("System.Char"));
                 * dt.Columns.Add(f8);
                 * DataColumn f8a = new DataColumn("F8A", Type.GetType("System.Char[]"));
                 * dt.Columns.Add(f8a);
                 * DataColumn f9 = new DataColumn("F9", Type.GetType("System.Byte"));
                 * dt.Columns.Add(f9);
                 * DataColumn f9a = new DataColumn("F9A", Type.GetType("System.SByte"));
                 * dt.Columns.Add(f9a);
                 * DataColumn f9b = new DataColumn("F9B", Type.GetType("System.Byte[]"));
                 * dt.Columns.Add(f9b);
                 * DataColumn f10 = new DataColumn("F10", Type.GetType("System.Boolean"));
                 * dt.Columns.Add(f10);
                 * DataColumn f11 = new DataColumn("F11", Type.GetType("System.Object"));
                 * dt.Columns.Add(f11);
                 * DataColumn f12 = new DataColumn("F12", Type.GetType("System.DateTime"));
                 * dt.Columns.Add(f12);
                 * DataColumn f13 = new DataColumn("F13", Type.GetType("System.Guid"));
                 * dt.Columns.Add(f13);
                 *
                 * createScript = string.Empty;
                 * bool result = sqlserv.CreateTable(dt, out createScript);
                 *
                 * int maxColInx = dt.Columns.Count - 1;
                 * sql.Length = 0;
                 * sql.Append("insert into ");
                 * sql.Append(schemaName + "." + tableName);
                 * sql.Append(" (");
                 * for (int colInx = 0; colInx <= maxColInx; colInx++)
                 * {
                 *  sql.Append(dt.Columns[colInx].ColumnName);
                 *  if (colInx < maxColInx)
                 *      sql.Append(", ");
                 * }
                 * sql.Append(")");
                 * sql.Append(" VALUES (");
                 * sql.Append("1, 'short string value', 'longer string value', 1123456789, 3123456789, ");
                 * sql.Append("23123456789, 8881234567889, 11123, 52432, 123456.7654, 321.234, 2123456789.22, ");
                 * sql.Append("'A', 'ABCDEFGH', 254, 125, CONVERT(varbinary(5),'UVWZYZ'), 1, 'This is an object: be careful!', '5/31/2013 13:54:25', '58a4a08d-6101-4393-86dc-b2a8db46ec0f'");
                 * sql.Append(");");
                 *
                 * _msg.Length = 0;
                 * _msg.Append("Insert statement: ");
                 * _msg.Append(sql.ToString());
                 * Program._messageLog.WriteLine(_msg.ToString());
                 *
                 *
                 * int numRows = sqlserv.RunNonQuery(sql.ToString(), CommandType.Text);
                 *
                 * _msg.Length = 0;
                 * _msg.Append("Num rows inserted: ");
                 * _msg.Append(numRows.ToString());
                 * Program._messageLog.WriteLine(_msg.ToString());
                 */
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                _msg.Length = 0;
                _msg.Append("SQL Script: \r\n");
                _msg.Append(createScript);
                Program._messageLog.WriteLine(_msg.ToString());
                sqlserv.CloseConnection();
                sqlserv = null;
            }
        }
예제 #9
0
        public static void GetQueryDataSchema()
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;
            Stopwatch   sw = new Stopwatch();

            try
            {
                _msg.Length = 0;
                _msg.Append("GetQueryDataSchema started ...\r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                sqlserv.ServerName             = _frm.txtServerName.Text;
                sqlserv.DatabaseName           = _frm.txtDatabaseName.Text;
                sqlserv.UseIntegratedSecurity  = _frm.chkUseIntegratedSecurity.Checked;
                sqlserv.AsynchronousProcessing = _frm.chkUseAsyncProcessing.Checked;
                sqlserv.ApplicationName        = _frm.txtApplicationName.Text;
                sqlserv.WorkstationId          = _frm.txtWorkstationId.Text;
                sqlserv.Username = _frm.txtUsername.Text;
                sqlserv.Password = _frm.txtPassword.Text;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());

                if (_frm.txtSQLQuery.Text.Length == 0)
                {
                    throw new System.Exception("You must specify a SQL query to run.");
                }

                sw.Start();

                sqlserv.OpenConnection();

                sqlserv.SQLQuery = _frm.txtSQLQuery.Text;
                if (_frm.chkIsStoredProcedure.Checked)
                {
                    sqlserv.CommandType = CommandType.StoredProcedure;
                }
                else
                {
                    sqlserv.CommandType = CommandType.Text;
                }

                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Open connection time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());

                sw.Start();

                DataTable tab = sqlserv.GetQueryDataSchema();

                foreach (DataColumn col in tab.Columns)
                {
                    _msg.Length = 0;
                    _msg.Append(col.ColumnName);
                    _msg.Append(", ");
                    _msg.Append(col.DataType.ToString());
                    Program._messageLog.WriteLine(_msg.ToString());
                }

                sw.Stop();
                _msg.Length = 0;
                _msg.Append("Get Query Schema time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                _msg.Length = 0;
                _msg.Append("\r\n... GetQueryDataSchema finished.");
                Program._messageLog.WriteLine(_msg.ToString());
            }
        }
예제 #10
0
        public static void TablePatternMatchTest(MainForm frm)
        {
            string      sourceConnectionString = @"Data Source=PROFASTWS3; Initial Catalog=AdventureWorksDW2008R2; Integrated Security=True; Application Name=TestprogGetSchemas; Workstation ID=PROFASTWS5;";
            PFSQLServer sourceDb = new PFSQLServer();

            PFTableDefinitions tabdefs = new PFTableDefinitions();

            try
            {
                _msg.Length = 0;
                _msg.Append("TablePatternMatchTest started ...\r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                sourceDb.ConnectionString = sourceConnectionString;
                sourceDb.OpenConnection();

                Program._messageLog.WriteLine("Get all table names:\r\n");

                //PFList<PFTableDef> tableDefs = sourceDb.GetTableList();
                //PFList<PFTableDef> tableDefs = tabdefs.GetTableList(sourceDb, "*.DimC*", string.Empty);
                PFList <PFTableDef> tableDefs = tabdefs.GetTableList(sourceDb);
                PFTableDef          td        = null;

                tableDefs.SetToBOF();

                while ((td = tableDefs.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append(td.TableFullName);
                    Program._messageLog.WriteLine(_msg.ToString());
                }

                _msg.Length = 0;
                _msg.Append("\r\nInclude: ");
                _msg.Append("*.DimC*");
                _msg.Append("\r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                tableDefs = tabdefs.GetTableList(sourceDb, new string[1] {
                    "*.DimC*"
                }, null);
                td = null;

                tableDefs.SetToBOF();

                while ((td = tableDefs.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append(td.TableFullName);
                    Program._messageLog.WriteLine(_msg.ToString());
                }

                _msg.Length = 0;
                _msg.Append("\r\nexclude: ");
                _msg.Append("dbo.Fact*");
                _msg.Append("\r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                tableDefs = tabdefs.GetTableList(sourceDb, null, new string[1] {
                    "dbo.Fact*"
                });
                td = null;

                tableDefs.SetToBOF();

                while ((td = tableDefs.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append(td.TableFullName);
                    Program._messageLog.WriteLine(_msg.ToString());
                }

                string[] includes = new string[3];
                includes[0] = "dbo.DimDate";
                includes[1] = "dbo.DimC*";
                includes[2] = "dbo.FactFinance";
                string[] excludes = new string[5];
                excludes[0] = "dbo.DimC*";
                excludes[1] = "dbo.DimGeography";
                excludes[2] = "dbo.FactFinance";
                excludes[3] = "dbo.MikeTab01";
                excludes[4] = "dbo.TestTable01";

                _msg.Length = 0;
                _msg.Append("\r\n<includes>: ");
                _msg.Append("\r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                tableDefs = tabdefs.GetTableList(sourceDb, includes, null);
                td        = null;

                tableDefs.SetToBOF();

                while ((td = tableDefs.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append(td.TableFullName);
                    Program._messageLog.WriteLine(_msg.ToString());
                }

                _msg.Length = 0;
                _msg.Append("\r\n<excludes>: ");
                _msg.Append("\r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                tableDefs = tabdefs.GetTableList(sourceDb, null, excludes);
                td        = null;

                tableDefs.SetToBOF();

                while ((td = tableDefs.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append(td.TableFullName);
                    Program._messageLog.WriteLine(_msg.ToString());
                }

                includes    = new string[3];
                includes[0] = "dbo.DimDate";
                includes[1] = "dbo.DimC*";
                includes[2] = "dbo.FactS*";
                excludes    = new string[2];
                excludes[0] = "dbo.DimCurrency";
                excludes[1] = "dbo.FactSurveyResponse";

                _msg.Length = 0;
                _msg.Append("\r\n<includes/excludes>: ");
                _msg.Append("\r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                tableDefs = tabdefs.GetTableList(sourceDb, includes, excludes);
                td        = null;

                tableDefs.SetToBOF();

                while ((td = tableDefs.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append(td.TableFullName);
                    Program._messageLog.WriteLine(_msg.ToString());
                }
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                _msg.Length = 0;
                _msg.Append("\r\n... TablePatternMatchTest finished.");
                Program._messageLog.WriteLine(_msg.ToString());
            }
        }
예제 #11
0
        public static void GetSQLServerTables(MainForm frm)
        {
            Stopwatch sw = new Stopwatch();

            string      sourceConnectionString = @"Data Source=PROFASTWS3; Initial Catalog=AdventureWorksDW2008R2; Integrated Security=True; Application Name=TestprogGetSchemas; Workstation ID=PROFASTWS5;";
            PFSQLServer sourceDb = new PFSQLServer();

            string      destinationConnectionString = @"Data Source=PROFASTSV2; Initial Catalog=AWTest; Integrated Security=True; Application Name=TestprogGetSchemas; Workstation ID=PROFASTWS5;";
            PFSQLServer destDb = new PFSQLServer();

            PFTableDefinitions tabdefs = new PFTableDefinitions();

            try
            {
                _msg.Length = 0;
                _msg.Append("GetSQLServerTables started ...\r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                sourceDb.ConnectionString = sourceConnectionString;
                sourceDb.OpenConnection();


                Program._messageLog.WriteLine("Get all table names:\r\n");

                string[] includes = new string[4];
                includes[0] = "dbo.DimDate";
                includes[1] = "dbo.DimC*";
                includes[2] = "dbo.DimGeography";
                includes[3] = "dbo.FactCurrencyRate";

                //PFList<PFTableDef> tableDefs = sourceDb.GetTableList();
                PFList <PFTableDef> tableDefs = tabdefs.GetTableList(sourceDb);
                //PFList<PFTableDef> tableDefs = tabdefs.GetTableList(sourceDb);
                PFTableDef td = null;

                tableDefs.SetToBOF();

                while ((td = tableDefs.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append(td.TableFullName);
                    _msg.Append(":\r\n");
                    _msg.Append(td.TableCreateStatement);
                    _msg.Append("\r\n");
                    Program._messageLog.WriteLine(_msg.ToString());
                }



                _msg.Length = 0;
                _msg.Append("\r\nConverted Table Defs follow: \r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                destDb.ConnectionString = destinationConnectionString;
                destDb.OpenConnection();

                PFList <PFTableDef> newTableDefs = destDb.ConvertTableDefs(tableDefs, "xyz");
                PFTableDef          newtd        = null;

                newTableDefs.SetToBOF();

                while ((newtd = newTableDefs.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append(newtd.TableFullName);
                    _msg.Append(":\r\n");
                    _msg.Append(newtd.TableCreateStatement);
                    _msg.Append("\r\n");
                    Program._messageLog.WriteLine(_msg.ToString());
                }

                _msg.Length = 0;
                _msg.Append("\r\nTesting table creates: \r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                sw.Start();

                newTableDefs.SetToBOF();
                int numTabsCreated = destDb.CreateTablesFromTableDefs(newTableDefs, true);

                sw.Stop();

                _msg.Length = 0;
                _msg.Append("\r\nNumber of tables created: \r\n");
                _msg.Append(numTabsCreated.ToString());
                _msg.Append("\r\n");
                _msg.Append("Elapsed time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());

                _msg.Length = 0;
                _msg.Append("\r\nTesting table copies: \r\n");
                Program._messageLog.WriteLine(_msg.ToString());

                sw.Start();

                newTableDefs.SetToBOF();
                PFDatabase dbtemp = new PFDatabase(DatabasePlatform.MSSQLServer);
                dbtemp.ConnectionString = sourceDb.ConnectionString;
                dbtemp.OpenConnection();
                //PFList<TableCopyDetails> tableCopyLog = destDb.CopyTableDataFromTableDefs(dbtemp, includes, null, "xyz", true);
                PFList <TableCopyDetails> tableCopyLog = destDb.CopyTableDataFromTableDefs(dbtemp, null, null, "xyz", true);

                dbtemp.CloseConnection();

                sw.Stop();


                _msg.Length = 0;
                _msg.Append("\r\nTable copies finished: \r\n");
                _msg.Append("Elapsed time: ");
                _msg.Append(sw.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());

                tableCopyLog.SetToBOF();
                TableCopyDetails tcdetails = null;

                while ((tcdetails = tableCopyLog.NextItem) != null)
                {
                    _msg.Length = 0;
                    _msg.Append("Table: ");
                    _msg.Append(tcdetails.destinationTableName);
                    _msg.Append(", NumRowsCopied: ");
                    _msg.Append(tcdetails.numRowsCopied.ToString("#,##0"));
                    if (tcdetails.result != TableCopyResult.Success)
                    {
                        _msg.Append("\r\n    ");
                        _msg.Append("Result: ");
                        _msg.Append(tcdetails.result.ToString());
                        _msg.Append("  Messages: ");
                        _msg.Append(tcdetails.messages);
                    }
                    Program._messageLog.WriteLine(_msg.ToString());
                }
            }
            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 (sourceDb.IsConnected)
                {
                    sourceDb.CloseConnection();
                }
                if (destDb.IsConnected)
                {
                    destDb.CloseConnection();
                }
                sourceDb    = null;
                destDb      = null;
                _msg.Length = 0;
                _msg.Append("\r\n... GetSQLServerTables finished.");
                Program._messageLog.WriteLine(_msg.ToString());
            }
        }
예제 #12
0
        public static void FixedLengthExtractFileTest(MainForm frm)
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;
            string      sqlQuery         = "select GeographyKey, City, StateProvinceName as StateName, EnglishCountryRegionName as CountryName, PostalCode, SalesTerritoryKey as TerritoryKey from dbo.DimGeography;";
            PFTextFile  extractFile      = new PFTextFile(@"c:\temp\FixedLengthFileTest.txt", PFFileOpenOperation.OpenFileForWrite);
            Stopwatch   watch            = new Stopwatch();

            try
            {
                watch.Start();

                sqlserv.ServerName            = "PROFASTWS1";
                sqlserv.DatabaseName          = "AdventureWorksDW2008R2";
                sqlserv.UseIntegratedSecurity = true;
                sqlserv.ApplicationName       = "TextExtractTest";
                sqlserv.WorkstationId         = Environment.MachineName;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());


                sqlserv.OpenConnection();


                sqlserv.SQLQuery    = sqlQuery;
                sqlserv.CommandType = CommandType.Text;

                SqlDataReader rdr = (SqlDataReader)sqlserv.RunQueryDataReader();

                DataTable             schemaTable = rdr.GetSchemaTable();
                PFFixedLengthDataLine line        = new PFFixedLengthDataLine(schemaTable.Rows.Count);
                line.UseLineTerminator   = frm.chkFixedLengthCrLf.Checked;
                line.AllowDataTruncation = frm.chkAllowDataTruncation.Checked;

                //foreach (DataRow myField in schemaTable.Rows)
                //{
                //    //For each property of the field...
                //    foreach (DataColumn myProperty in schemaTable.Columns)
                //    {
                //        //Display the field name and value.
                //        Program._messageLog.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString() + " - " );
                //    }
                //}
                //Program._messageLog.WriteLine("--------------------------------");

                //Program._messageLog.WriteLine(schemaTable.Rows[0]["DataType"].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[1].ItemArray[12].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[2].ItemArray[12].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[3].ItemArray[12].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[4].ItemArray[12].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[5].ItemArray[12].ToString());

                ////DataRow row = schemaTable.Rows[0];
                ////Program._messageLog.WriteLine(row["ColumnName"] + " is " + row["DataType"]);

                //Program._messageLog.WriteLine("--------------------------------");

                //for (int rowInx = 0; rowInx < schemaTable.Rows.Count; rowInx++)
                //{
                //    DataRow row = schemaTable.Rows[rowInx];
                //    Program._messageLog.WriteLine(row["ColumnName"] + " is " + row["DataType"]);
                //}

                //Program._messageLog.WriteLine("--------------------------------");

                //line.SetColumnDefinition(0, "GeographyKey", 12,PFDataAlign.RightJustify);
                //line.SetColumnDefinition(1, "City", 30, PFDataAlign.LeftJustify);
                //line.SetColumnDefinition(2, "StateName", 50, PFDataAlign.LeftJustify);
                //line.SetColumnDefinition(3, "CountryName", 50, PFDataAlign.LeftJustify);
                //line.SetColumnDefinition(4, "PostalCode", 15, PFDataAlign.LeftJustify);
                //line.SetColumnDefinition(5, "TerritoryKey", 12, PFDataAlign.RightJustify);

                //foreach (DataRow myField in schemaTable.Rows)
                //{
                //    //For each property of the field...
                //    foreach (DataColumn myProperty in schemaTable.Columns)
                //    {
                //    //Display the field name and value.
                //        Program._messageLog.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());
                //    }
                //}


                for (int rowInx = 0; rowInx < schemaTable.Rows.Count; rowInx++)
                {
                    DataRow     row           = schemaTable.Rows[rowInx];
                    string      colName       = row["ColumnName"].ToString();
                    System.Type colType       = (System.Type)row["DataType"];
                    bool        typeIsNumeric = PFFixedLengthDataLine.DataTypeIsNumeric(colType);
                    int         colLen        = PFFixedLengthDataLine.GetNumericTypeMaxExtractLength(colType);
                    if (colLen < 1)
                    {
                        colLen = (int)row["ColumnSize"];
                    }
                    if (colName.Length > colLen)
                    {
                        colLen = colName.Length;
                    }
                    PFDataAlign dataAlignment = typeIsNumeric ? PFDataAlign.RightJustify : PFDataAlign.LeftJustify;

                    line.SetColumnDefinition(rowInx, colName, colLen, dataAlignment);
                    Program._messageLog.WriteLine(colName + ", " + colType.FullName + ", " + colLen.ToString() + ", " + dataAlignment.ToString());
                }
                extractFile.WriteData(line.OutputColumnNames());

                int numRows = 0;
                if (rdr.HasRows)
                {
                    int colInx    = 0;
                    int maxColInx = -1;
                    while (rdr.Read())
                    {
                        numRows++;
                        maxColInx = rdr.FieldCount - 1;
                        for (colInx = 0; colInx <= maxColInx; colInx++)
                        {
                            line.SetColumnData(colInx, rdr[colInx].ToString());
                        }
                        extractFile.WriteData(line.OutputColumnData());
                    }
                }

                _msg.Length = 0;
                _msg.Append("Number of data rows written:   ");
                _msg.Append(numRows.ToString("#,##0"));
                _msg.Append("\r\n");
                _msg.Append("Number of header rows written: 1");
                Program._messageLog.WriteLine(_msg.ToString());
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                sqlserv.CloseConnection();
                sqlserv = null;
                if (extractFile != null)
                {
                    extractFile.CloseFile();
                    extractFile = null;
                }
                watch.Stop();
                _msg.Length = 0;
                _msg.Append("Elapsed time: ");
                _msg.Append(watch.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());
            }
        }//end test
예제 #13
0
        }//end method

        public static void DelimitedExtractFileTest(MainForm frm)
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;
            string      sqlQuery         = "select GeographyKey, City, StateProvinceName as StateName, EnglishCountryRegionName as CountryName, PostalCode from dbo.DimGeography;";
            PFTextFile  extractFile      = new PFTextFile(@"c:\temp\ExtractFileTest.txt", PFFileOpenOperation.OpenFileForWrite);
            Stopwatch   watch            = new Stopwatch();

            try
            {
                watch.Start();

                sqlserv.ServerName            = "PROFASTSV2";
                sqlserv.DatabaseName          = "AdventureWorksDW2008R2";
                sqlserv.UseIntegratedSecurity = true;
                sqlserv.ApplicationName       = "TextExtractTest";
                sqlserv.WorkstationId         = Environment.MachineName;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());


                sqlserv.OpenConnection();


                sqlserv.SQLQuery    = sqlQuery;
                sqlserv.CommandType = CommandType.Text;

                SqlDataReader rdr = (SqlDataReader)sqlserv.RunQueryDataReader();

                DataTable           schemaTable = rdr.GetSchemaTable();
                PFDelimitedDataLine line        = new PFDelimitedDataLine(schemaTable.Rows.Count);

                for (int i = 0; i < schemaTable.Rows.Count; i++)
                {
                    line.SetColumnDefinition(i, schemaTable.Rows[i]["ColumnName"].ToString());
                }
                extractFile.WriteData(line.OutputColumnNames());

                //foreach (DataRow row in schemaTable.Rows)
                //{

                //    Program._messageLog.WriteLine(row["ColumnName"].ToString());
                //    //For each property of the field...
                //    //foreach (DataColumn prop in schemaTable.Columns)
                //    //{
                //    //    //Display the field name and value.
                //    //     Program._messageLog.WriteLine(prop.ColumnName + " = " + fld[prop].ToString());
                //    //}

                //}

                int numRows = 0;
                if (rdr.HasRows)
                {
                    int colInx    = 0;
                    int maxColInx = -1;
                    while (rdr.Read())
                    {
                        numRows++;
                        maxColInx = rdr.FieldCount - 1;
                        for (colInx = 0; colInx <= maxColInx; colInx++)
                        {
                            line.SetColumnData(colInx, rdr[colInx].ToString());
                        }
                        extractFile.WriteData(line.OutputColumnData());
                    }
                }

                _msg.Length = 0;
                _msg.Append("Number of data rows written:   ");
                _msg.Append(numRows.ToString("#,##0"));
                _msg.Append("\r\n");
                _msg.Append("Number of header rows written: 1");
                Program._messageLog.WriteLine(_msg.ToString());

                //if (rdr.HasRows)
                //{

                //    int colInx = 0;
                //    int maxColInx = -1;
                //    while (rdr.Read())
                //    {
                //        _msg.Length = 0;
                //        maxColInx = rdr.FieldCount - 1;
                //        for (colInx = 0; colInx <= maxColInx; colInx++)
                //        {
                //            _msg.Append(rdr.GetName(colInx));
                //            _msg.Append(": ");
                //            _msg.Append(rdr[colInx].ToString());
                //            if (colInx < maxColInx)
                //                _msg.Append(", ");
                //        }
                //        Program._messageLog.WriteLine(_msg.ToString());
                //    }
                //}
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                sqlserv.CloseConnection();
                sqlserv = null;
                if (extractFile != null)
                {
                    extractFile.CloseFile();
                    extractFile = null;
                }
                watch.Stop();
                _msg.Length = 0;
                _msg.Append("Elapsed time: ");
                _msg.Append(watch.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());
            }
        }