Beispiel #1
0
        private DataItem CreateDataItem(DataSourceView parDsv, string parTableName, string parColumnName)
        {
            DataTable  dataTable  = ((DataSourceView)parDsv).Schema.Tables[parTableName];
            DataColumn dataColumn = dataTable.Columns[parColumnName];

            return(new DataItem(parTableName, parColumnName, OleDbTypeConverter.GetRestrictedOleDbType(dataColumn.DataType)));
        }
Beispiel #2
0
        /// <summary>
        /// Create data item
        /// </summary>
        /// <param name="dsv"></param>
        /// <param name="factTableName"></param>
        /// <param name="factFKDimColumnName"></param>
        /// <param name="dataType"></param>
        /// <returns></returns>
        internal static DataItem CREATE_DATA_ITEM(
            DB_SQLHELPER_BASE sqlHelper,
            DataSourceView dsv,
            String factTableName,
            String factFKDimColumnName,
            System.Data.OleDb.OleDbType dataType)
        {
            DataTable  data_table = dsv.Schema.Tables[factTableName];
            DataColumn dataColumn = data_table.Columns[factFKDimColumnName];

            if (dataColumn == null)
            {
                sqlHelper.ADD_MESSAGE_LOG(

                    String.Format("Table [{0}] doesn't have column [{0}]", factTableName, factFKDimColumnName),
                    MESSAGE_TYPE.COLUMN_BINDING_DATA_ITEM, MESSAGE_RESULT_TYPE.Error);
            }
            DataItem dataItem = new DataItem(factTableName, dataColumn.ColumnName);

            if (dataType != null)
            {
                dataItem.DataType = dataType;
            }
            else
            {
                dataItem.DataType = OleDbTypeConverter.GetRestrictedOleDbType(dataColumn.DataType);
            }
            return(dataItem);
        }
Beispiel #3
0
        /// <summary>
        /// Create Column Binding Data Item
        /// </summary>
        /// <param name="dsv"></param>
        /// <param name="tableName"></param>
        /// <param name="columnName"></param>
        /// <param name="dataType"></param>
        /// <returns></returns>
        internal static DataItem CREATE_COLUMN_BINDING_DATA_ITEM(
            DB_SQLHELPER_BASE sqlHelper,
            DataSourceView dsv,
            String tableName,
            String columnName,
            System.Data.OleDb.OleDbType dataType)
        {
            DataItem  dataItem   = null;
            DataTable data_table = dsv.Schema.Tables[tableName];

            if (data_table == null)
            {
                sqlHelper.ADD_MESSAGE_LOG(
                    String.Format("Table {0} is not existed in current DSV", tableName),
                    MESSAGE_TYPE.COLUMN_BINDING_DATA_ITEM, MESSAGE_RESULT_TYPE.Warning);
            }
            DataColumn dataColumn = data_table.Columns[columnName];

            if (dataColumn == null)
            {
                sqlHelper.ADD_MESSAGE_LOG(
                    String.Format("Column {0} is not existed in table {1}", columnName, tableName),
                    MESSAGE_TYPE.COLUMN_BINDING_DATA_ITEM, MESSAGE_RESULT_TYPE.Warning);
            }
            dataItem = new DataItem(tableName, dataColumn.ColumnName);
            if (dataType != null)
            {
                dataItem.DataType = dataType;
            }
            else
            {
                dataItem.DataType = OleDbTypeConverter.GetRestrictedOleDbType(dataColumn.DataType);
            }
            return(dataItem);
        }
Beispiel #4
0
        private DataItem CreateDataItem(DataSourceView dsv, string tableName, string columnName)
        {
            DataTable  dataTable  = ((DataSourceView)dsv).Schema.Tables[tableName];
            DataColumn dataColumn = dataTable.Columns[columnName];

            return(new DataItem(tableName, columnName,
                                OleDbTypeConverter.GetRestrictedOleDbType(dataColumn.DataType)));
        }
            private void SetProperties(MeasureDataType dataType, Type type, double min, double max, bool allowsDecimals, bool allowsMoreThan4Decimals)
            {
                this.dataType = dataType;
                this.type     = type;

                if (dataType == MeasureDataType.Currency) //Type=Decimal isn't enough for it to correctly determine Currency
                {
                    this.oleDbType = OleDbType.Currency;
                }
                else
                {
                    this.oleDbType = OleDbTypeConverter.GetRestrictedOleDbType(type);
                }

                this.min                     = min;
                this.max                     = max;
                this.displayMin              = FormatDouble(min);
                this.displayMax              = FormatDouble(max);
                this.allowsDecimals          = allowsDecimals;
                this.allowsMoreThan4Decimals = allowsMoreThan4Decimals;
            }
Beispiel #6
0
        private DataItem CreateDataItem(string tableName, string columnName, NullProcessing aNullProcessing, DataType aDataType)
        {
            DataTable  dataTable  = _CbDataSourceView.Schema.Tables[tableName];
            DataColumn dataColumn = dataTable.Columns[columnName];
            OleDbType  aOleDbType;

            if (aDataType == null)
            {
                aOleDbType = OleDbTypeConverter.GetRestrictedOleDbType(dataColumn.DataType);
            }
            else
            {
                aOleDbType = ConvertFromSqlDataType(aDataType);
            }

            DataItem aDataItem = new DataItem(tableName, columnName, aOleDbType);

            aDataItem.NullProcessing = aNullProcessing;

            return(aDataItem);
        }
Beispiel #7
0
        public Dictionary <String, LevelPropertyInfo> GetLevelProperties(string cubeName, string dimensionUniqueName, string hierarchyUniqueName, String levelUniqueName)
        {
            try
            {
                System.Diagnostics.Trace.TraceInformation("{0} Ranet.Olap.Core.Providers.OlapMetadataProvider Get Level '{1}' Properties Started \r\n cubeName: '{2}' \r\n dimensionUniqueName: '{3}' \r\n hierarchyUniqueName: '{4}' ",
                                                          DateTime.Now.ToString(), levelUniqueName, cubeName, dimensionUniqueName, hierarchyUniqueName);

                Dictionary <String, LevelPropertyInfo> list = new Dictionary <String, LevelPropertyInfo>();
                // Ищем уровень
                Level level = FindLevel(cubeName, dimensionUniqueName, hierarchyUniqueName, levelUniqueName);
                if (level != null)
                {
                    // Свойства уровня - атрибуты
                    AdomdConnection conn = GetConnection();

                    AdomdRestrictionCollection restrictions = new AdomdRestrictionCollection();
                    restrictions.Add("CATALOG_NAME", conn.Database);
                    restrictions.Add("CUBE_NAME", OlapHelper.ConvertToNormalStyle(cubeName));
                    restrictions.Add("DIMENSION_UNIQUE_NAME", dimensionUniqueName);
                    restrictions.Add("HIERARCHY_UNIQUE_NAME", hierarchyUniqueName);
                    restrictions.Add("LEVEL_UNIQUE_NAME", level.UniqueName);

                    DataSet ds = conn.GetSchemaDataSet("MDSCHEMA_PROPERTIES", restrictions);
                    if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                    {
                        DataTable table = ds.Tables[0];

                        if (ds.Tables[0].Columns.Count > 0)
                        {
                            object obj = null;
                            foreach (DataRow row in ds.Tables[0].Rows)
                            {
                                Type type = null;
                                if (table.Columns.Contains("DATA_TYPE"))
                                {
                                    obj = row["DATA_TYPE"];
                                    System.Data.OleDb.OleDbType oleDbType = (System.Data.OleDb.OleDbType)(Convert.ToInt32(obj));
                                    type = OleDbTypeConverter.Convert(oleDbType);
                                }

                                String name = String.Empty;
                                if (table.Columns.Contains("PROPERTY_NAME"))
                                {
                                    obj = row["PROPERTY_NAME"];
                                    if (obj != null)
                                    {
                                        name = obj.ToString();
                                    }
                                }

                                String caption = String.Empty;
                                if (table.Columns.Contains("PROPERTY_CAPTION"))
                                {
                                    obj = row["PROPERTY_CAPTION"];
                                    if (obj != null)
                                    {
                                        caption = obj.ToString();
                                    }
                                }

                                String description = String.Empty;
                                if (table.Columns.Contains("DESCRIPTION"))
                                {
                                    obj = row["DESCRIPTION"];
                                    if (obj != null)
                                    {
                                        description = obj.ToString();
                                    }
                                }

                                int propertyType = 0;
                                if (table.Columns.Contains("PROPERTY_TYPE"))
                                {
                                    obj = row["PROPERTY_TYPE"];
                                    if (obj != null)
                                    {
                                        propertyType = Convert.ToInt32(obj);
                                    }
                                }

                                LevelPropertyInfo lpi = new LevelPropertyInfo();
                                lpi.Caption       = caption;
                                lpi.Description   = description;
                                lpi.Name          = name;
                                lpi.ParentLevelId = level.UniqueName;
                                //lpi.DataType = type;
                                if ((propertyType & 0x04) == 0x04)
                                {
                                    lpi.IsSystem = true;
                                }

                                lpi.PropertyType = propertyType;

                                //info.LevelProperties.Add(lpi);
                                list.Add(lpi.Name, lpi);
                            }
                        }
                    }

                    //list.Add(info);
                }
                return(list);
            }
            finally {
                System.Diagnostics.Trace.TraceInformation("{0} Ranet.Olap.Core.Providers.OlapMetadataProvider Get Level '{1}' Properties Completed ", DateTime.Now.ToString(), levelUniqueName);
            }
        }
 public static SqlDbType GetSqlDbType(OleDbType oleDbType)
 {
     return(OleDbTypeConverter.ToSqlDbType(oleDbType));
 }
 public static DbType GetDbType(OleDbType oleDbType)
 {
     return(OleDbTypeConverter.ToDbType(oleDbType));
 }
 public static Type GetSystemType(OleDbType oleDbType)
 {
     return(OleDbTypeConverter.ToSystemType(oleDbType));
 }