Exemple #1
0
        public static void ImportDataTableTest(MainForm frm)
        {
            PFOracle oracle           = new PFOracle();
            string   connectionString = string.Empty;

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

                oracle.DataSource            = frm.txtDataSource.Text;
                oracle.UseIntegratedSecurity = frm.chkUseIntegratedSecurity.Checked;
                oracle.Username = frm.txtUserId.Text;
                oracle.Password = frm.txtPassword.Text;

                connectionString = oracle.ConnectionString;



                oracle.OpenConnection();

                StringBuilder sql       = new StringBuilder();
                DataTable     dt        = frm.keyValsDataSet.Tables["HR.KeyValTable"];
                string        tableName = dt.TableName;


                //first delete table if it already exists
                Program._messageLog.WriteLine("\r\nDropping old table if it exists ...");


                //sql.Length = 0;
                //sql.Append("IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'");
                //sql.Append(dt.TableName);
                //sql.Append("') AND type in (N'U'))");
                //sql.Append("\r\n");
                //sql.Append("DROP TABLE ");
                //sql.Append(dt.TableName);
                //sql.Append(";");

                //Program._messageLog.WriteLine(sql.ToString());

                //sql.Length = 0;
                //sql.Append("declare");
                //sql.Append("   c int;");
                //sql.Append("begin");
                //sql.Append("   select count(*) into c from user_tables where table_name = upper('");
                //sql.Append(dt.TableName);
                //sql.Append("');");
                //sql.Append("   if c = 1 then");
                //sql.Append("      execute immediate 'drop table ");
                //sql.Append(dt.TableName);
                //sql.Append("';");
                //sql.Append("   end if;");
                //sql.Append("end;");
                //Program._messageLog.WriteLine(sql.ToString());

                //int numRows = oracle.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());

                string   schemaName      = "SYS";
                string   tabName         = "InvalidTableName";
                string[] parsedTableName = tableName.Split('.');
                if (parsedTableName.Length == 2)
                {
                    schemaName = parsedTableName[0];
                    tabName    = parsedTableName[1];
                }
                else if (parsedTableName.Length == 1)
                {
                    tabName = parsedTableName[0];
                }
                else
                {
                    ;
                }

                if (oracle.TableExists(schemaName, tabName))
                {
                    bool dropped = oracle.DropTable(schemaName, tabName);
                    if (dropped == false)
                    {
                        _msg.Length = 0;
                        _msg.Append("Unable to drop table ");
                        _msg.Append(schemaName);
                        _msg.Append(".");
                        _msg.Append(tabName);
                        throw new DataException(_msg.ToString());
                    }
                }


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

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

                oracle.ImportDataFromDataTable(dt, 100);

                oracle.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());
            }
        }