protected override DataSet ColumnSchema(Table table, DataAccessProviderFactory dataAccessProvider, IDbConnection connection)
        {
            DataSet    ds    = new DataSet();
            IDbCommand sqlSp = dataAccessProvider.CreateCommand("sp_columns", connection);

            sqlSp.CommandType = CommandType.StoredProcedure;
            IDbDataParameter param = dataAccessProvider.CreateParameter();

            param.Direction     = ParameterDirection.Input;
            param.DbType        = DbType.String;
            param.ParameterName = "@table_name";
            param.Value         = table.Name;
            sqlSp.Parameters.Add(param);
            IDbDataParameter schemaParameter = dataAccessProvider.CreateParameter();

            schemaParameter.Direction     = ParameterDirection.Input;
            schemaParameter.DbType        = DbType.String;
            schemaParameter.ParameterName = "@table_owner";
            schemaParameter.Value         = table.Schema;
            sqlSp.Parameters.Add(schemaParameter);
            IDbDataAdapter da = dataAccessProvider.CreateDataAdapter();

            da.SelectCommand = sqlSp;
            da.Fill(ds);
            return(ds);
        }
        protected override DataSet KeySchema(Table table, DataAccessProviderFactory dataAccessProvider, IDbConnection connection)
        {
            DataSet    dsPkeys = new DataSet();
            IDbCommand sqlSp   = dataAccessProvider.CreateCommand("sp_pkeys", connection);

            sqlSp.CommandType = CommandType.StoredProcedure;
            IDbDataParameter param = dataAccessProvider.CreateParameter();

            param.Direction     = ParameterDirection.Input;
            param.DbType        = DbType.String;
            param.ParameterName = "@table_name";
            param.Value         = table.Name;
            sqlSp.Parameters.Add(param);
            IDbDataParameter schemaParameter = dataAccessProvider.CreateParameter();

            schemaParameter.Direction     = ParameterDirection.Input;
            schemaParameter.DbType        = DbType.String;
            schemaParameter.ParameterName = "@table_owner";
            schemaParameter.Value         = table.Schema;
            sqlSp.Parameters.Add(schemaParameter);
            IDbDataAdapter da = dataAccessProvider.CreateDataAdapter();

            da.SelectCommand = sqlSp;
            da.Fill(dsPkeys);
            foreach (DataRow row in dsPkeys.Tables[0].Rows)
            {
                Key key = new Key();
                key.Name       = row["PK_NAME"].ToString();
                key.ColumnName = row["COLUMN_NAME"].ToString();
                key.IsPrimary  = true;
                _Keys.Add(key);
            }

            DataSet ds = new DataSet();

            sqlSp               = dataAccessProvider.CreateCommand("sp_fkeys", connection);
            sqlSp.CommandType   = CommandType.StoredProcedure;
            param               = dataAccessProvider.CreateParameter();
            param.Direction     = ParameterDirection.Input;
            param.DbType        = DbType.String;
            param.ParameterName = "@pktable_name";
            param.Value         = table.Name;
            sqlSp.Parameters.Add(param);
            da = dataAccessProvider.CreateDataAdapter();
            da.SelectCommand = sqlSp;
            da.Fill(ds);
            ds.Merge(dsPkeys);
            return(ds);
        }
Exemplo n.º 3
0
        protected override DataSet TableSchema(DataAccessProviderFactory dataAccessProvider, IDbConnection connection)
        {
            DataSet    ds    = new DataSet();
            IDbCommand sqlSp = dataAccessProvider.CreateCommand("sp_tables", connection);

            sqlSp.CommandType = CommandType.StoredProcedure;
            IDbDataParameter param = dataAccessProvider.CreateParameter();

            param.ParameterName = "@table_type";
            param.Value         = "'TABLE'";
            sqlSp.Parameters.Add(param);
            IDbDataAdapter da = dataAccessProvider.CreateDataAdapter();

            da.SelectCommand = sqlSp;
            da.Fill(ds);
            return(ds);
        }