internal void CopySchemaInfoFrom(DbSqlParserColumn completedColumn)
 {
     this._databaseName = completedColumn.DatabaseName;
     this._schemaName   = completedColumn.SchemaName;
     this._tableName    = completedColumn.TableName;
     this._columnName   = completedColumn.ColumnName;
     this._isKey        = completedColumn.IsKey;
     this._isUnique     = completedColumn.IsUnique;
 }
 internal void CopySchemaInfoFrom(DbSqlParserColumn completedColumn)
 {
     this._databaseName = completedColumn.DatabaseName;
     this._schemaName = completedColumn.SchemaName;
     this._tableName = completedColumn.TableName;
     this._columnName = completedColumn.ColumnName;
     this._isKey = completedColumn.IsKey;
     this._isUnique = completedColumn.IsUnique;
 }
        protected DbSqlParserColumn FindCompletedColumn(DbSqlParserTable table, DbSqlParserColumn searchColumn)
        {
            DbSqlParserColumnCollection columns = table.Columns;
            int count = columns.Count;

            for (int i = 0; i < count; i++)
            {
                DbSqlParserColumn column = columns[i];
                if (this.CatalogMatch(column.ColumnName, searchColumn.ColumnName))
                {
                    return(column);
                }
            }
            return(null);
        }
        private DbSqlParserColumn FindConstraintColumn(string schemaName, string tableName, string columnName)
        {
            DbSqlParserColumnCollection columns = base.Columns;
            int count = columns.Count;

            for (int i = 0; i < count; i++)
            {
                DbSqlParserColumn column = columns[i];
                if ((this.CatalogMatch(column.SchemaName, schemaName) && this.CatalogMatch(column.TableName, tableName)) && this.CatalogMatch(column.ColumnName, columnName))
                {
                    return(column);
                }
            }
            return(null);
        }
        internal DbSqlParserTable FindTableForColumn(DbSqlParserColumn column)
        {
            DbSqlParserTableCollection tables = this.Tables;
            int count = tables.Count;

            for (int i = 0; i < count; i++)
            {
                DbSqlParserTable table = tables[i];
                if ((System.Data.Common.ADP.IsEmpty(column.DatabaseName) && System.Data.Common.ADP.IsEmpty(column.SchemaName)) && this.CatalogMatch(column.TableName, table.CorrelationName))
                {
                    return(table);
                }
                if (((System.Data.Common.ADP.IsEmpty(column.DatabaseName) || this.CatalogMatch(column.DatabaseName, table.DatabaseName)) && (System.Data.Common.ADP.IsEmpty(column.SchemaName) || this.CatalogMatch(column.SchemaName, table.SchemaName))) && (System.Data.Common.ADP.IsEmpty(column.TableName) || this.CatalogMatch(column.TableName, table.TableName)))
                {
                    return(table);
                }
            }
            return(null);
        }
 internal DbSqlParserTable FindTableForColumn(DbSqlParserColumn column)
 {
     DbSqlParserTableCollection tables = this.Tables;
     int count = tables.Count;
     for (int i = 0; i < count; i++)
     {
         DbSqlParserTable table = tables[i];
         if ((System.Data.Common.ADP.IsEmpty(column.DatabaseName) && System.Data.Common.ADP.IsEmpty(column.SchemaName)) && this.CatalogMatch(column.TableName, table.CorrelationName))
         {
             return table;
         }
         if (((System.Data.Common.ADP.IsEmpty(column.DatabaseName) || this.CatalogMatch(column.DatabaseName, table.DatabaseName)) && (System.Data.Common.ADP.IsEmpty(column.SchemaName) || this.CatalogMatch(column.SchemaName, table.SchemaName))) && (System.Data.Common.ADP.IsEmpty(column.TableName) || this.CatalogMatch(column.TableName, table.TableName)))
         {
             return table;
         }
     }
     return null;
 }
 protected DbSqlParserColumn FindCompletedColumn(DbSqlParserTable table, DbSqlParserColumn searchColumn)
 {
     DbSqlParserColumnCollection columns = table.Columns;
     int count = columns.Count;
     for (int i = 0; i < count; i++)
     {
         DbSqlParserColumn column = columns[i];
         if (this.CatalogMatch(column.ColumnName, searchColumn.ColumnName))
         {
             return column;
         }
     }
     return null;
 }
Ejemplo n.º 8
0
 internal DbSqlParserColumn Add(DbSqlParserColumn value)
 {
     this.OnValidate(value);
     base.InnerList.Add(value);
     return(value);
 }
Ejemplo n.º 9
0
 internal void Insert(int index, DbSqlParserColumn value)
 {
     base.InnerList.Insert(index, value);
 }
Ejemplo n.º 10
0
        internal DbSqlParserColumn Add(string databaseName, string schemaName, string tableName, string columnName, string alias)
        {
            DbSqlParserColumn column = new DbSqlParserColumn(databaseName, schemaName, tableName, columnName, alias);

            return(this.Add(column));
        }
        private void CompleteSchemaInformation()
        {
            DbSqlParserColumnCollection columns = this.Columns;
            DbSqlParserTableCollection  tables  = this.Tables;
            int count = columns.Count;
            int num10 = tables.Count;

            for (int i = 0; i < num10; i++)
            {
                DbSqlParserTable            table2   = tables[i];
                DbSqlParserColumnCollection columns4 = this.GatherTableColumns(table2);
                table2.Columns = columns4;
            }
            for (int j = 0; j < count; j++)
            {
                DbSqlParserColumn column = columns[j];
                DbSqlParserTable  table  = this.FindTableForColumn(column);
                if (!column.IsExpression)
                {
                    if ("*" == column.ColumnName)
                    {
                        columns.RemoveAt(j);
                        if (column.TableName.Length != 0)
                        {
                            DbSqlParserColumnCollection columns3 = table.Columns;
                            int num9 = columns3.Count;
                            for (int m = 0; m < num9; m++)
                            {
                                columns.Insert(j + m, columns3[m]);
                            }
                            count += num9 - 1;
                            j     += num9 - 1;
                        }
                        else
                        {
                            for (int n = 0; n < num10; n++)
                            {
                                table = tables[n];
                                DbSqlParserColumnCollection columns2 = table.Columns;
                                int num8 = columns2.Count;
                                for (int num2 = 0; num2 < num8; num2++)
                                {
                                    columns.Insert(j + num2, columns2[num2]);
                                }
                                count += num8 - 1;
                                j     += num8;
                            }
                        }
                    }
                    else
                    {
                        DbSqlParserColumn completedColumn = this.FindCompletedColumn(table, column);
                        if (completedColumn != null)
                        {
                            column.CopySchemaInfoFrom(completedColumn);
                        }
                        else
                        {
                            column.CopySchemaInfoFrom(table);
                        }
                    }
                }
            }
            for (int k = 0; k < num10; k++)
            {
                DbSqlParserTable table3 = tables[k];
                this.GatherKeyColumns(table3);
            }
        }
 internal DbSqlParserColumn Add(DbSqlParserColumn value)
 {
     this.OnValidate(value);
     base.InnerList.Add(value);
     return value;
 }
 internal void Insert(int index, DbSqlParserColumn value)
 {
     base.InnerList.Insert(index, value);
 }
 internal DbSqlParserColumn Add(string databaseName, string schemaName, string tableName, string columnName, string alias)
 {
     DbSqlParserColumn column = new DbSqlParserColumn(databaseName, schemaName, tableName, columnName, alias);
     return this.Add(column);
 }
Ejemplo n.º 15
0
        private void FillSchemaTable(DataTable schemaTable)
        {
            DataColumn column3 = new DataColumn(SchemaTableOptionalColumn.ProviderSpecificDataType, typeof(Type));

            schemaTable.Columns.Add(column3);
            int fieldCount = this.FieldCount;
            DbSqlParserColumnCollection columns = null;
            int count = 0;

            if (this._keyInfoRequested)
            {
                OracleSqlParser parser = new OracleSqlParser();
                parser.Parse(this._statementText, this._connection);
                columns = parser.Columns;
                count   = columns.Count;
            }
            for (int i = 0; i < fieldCount; i++)
            {
                OracleColumn column = this._columnInfo[i];
                DataRow      row    = schemaTable.NewRow();
                row[SchemaTableColumn.ColumnName]    = column.ColumnName;
                row[SchemaTableColumn.ColumnOrdinal] = column.Ordinal;
                if (column.IsLong | column.IsLob)
                {
                    row[SchemaTableColumn.ColumnSize] = 0x7fffffff;
                }
                else
                {
                    row[SchemaTableColumn.ColumnSize] = column.SchemaTableSize;
                }
                row[SchemaTableColumn.NumericPrecision] = column.Precision;
                row[SchemaTableColumn.NumericScale]     = column.Scale;
                row[SchemaTableColumn.DataType]         = column.GetFieldType();
                row[column3] = column.GetFieldOracleType();
                row[SchemaTableColumn.ProviderType] = column.OracleType;
                row[SchemaTableColumn.IsLong]       = column.IsLong | column.IsLob;
                row[SchemaTableColumn.AllowDBNull]  = column.IsNullable;
                if (this._keyInfoRequested && (count == fieldCount))
                {
                    DbSqlParserColumn column2 = columns[i];
                    row[SchemaTableColumn.IsAliased]      = column2.IsAliased;
                    row[SchemaTableColumn.IsExpression]   = column2.IsExpression;
                    row[SchemaTableColumn.IsKey]          = column2.IsKey;
                    row[SchemaTableColumn.IsUnique]       = column2.IsUnique;
                    row[SchemaTableColumn.BaseSchemaName] = this.SetSchemaValue(OracleSqlParser.CatalogCase(column2.SchemaName));
                    row[SchemaTableColumn.BaseTableName]  = this.SetSchemaValue(OracleSqlParser.CatalogCase(column2.TableName));
                    row[SchemaTableColumn.BaseColumnName] = this.SetSchemaValue(OracleSqlParser.CatalogCase(column2.ColumnName));
                }
                else
                {
                    row[SchemaTableColumn.IsAliased]      = DBNull.Value;
                    row[SchemaTableColumn.IsExpression]   = DBNull.Value;
                    row[SchemaTableColumn.IsKey]          = DBNull.Value;
                    row[SchemaTableColumn.IsUnique]       = DBNull.Value;
                    row[SchemaTableColumn.BaseSchemaName] = DBNull.Value;
                    row[SchemaTableColumn.BaseTableName]  = DBNull.Value;
                    row[SchemaTableColumn.BaseColumnName] = DBNull.Value;
                }
                schemaTable.Rows.Add(row);
                row.AcceptChanges();
            }
        }