FromBinary() public static method

public static FromBinary ( ISqlBinary binary ) : ViewInfo
binary ISqlBinary
return ViewInfo
Esempio n. 1
0
        public View GetView(ObjectName viewName)
        {
            var viewTable = Transaction.GetTable(ViewTableName);
            var e         = viewTable.GetEnumerator();

            while (e.MoveNext())
            {
                int row = e.Current.RowId.RowNumber;

                var cSchema = viewTable.GetValue(row, 0).Value.ToString();
                var cName   = viewTable.GetValue(row, 1).Value.ToString();

                if (viewName.ParentName.Equals(cSchema) &&
                    viewName.Name.Equals(cName))
                {
                    ViewInfo viewInfo;
                    if (!viewCache.TryGetValue(row, out viewInfo))
                    {
                        var blob = (SqlBinary)viewTable.GetValue(row, 3).Value;
                        viewInfo = ViewInfo.FromBinary(blob);

                        viewCache[row] = viewInfo;
                    }

                    return(new View(viewInfo));
                }
            }

            return(null);
        }
Esempio n. 2
0
        internal View GetViewAt(int offset)
        {
            var table = Transaction.GetTable(ViewTableName);

            if (table == null)
            {
                throw new DatabaseSystemException(String.Format("System table '{0}' was not defined.", ViewTableName));
            }

            var e = table.GetEnumerator();
            int i = 0;

            while (e.MoveNext())
            {
                var row = e.Current.RowId.RowNumber;

                if (i == offset)
                {
                    ViewInfo viewInfo;
                    if (!viewCache.TryGetValue(row, out viewInfo))
                    {
                        var binary = (ISqlBinary)table.GetValue(row, 3).Value;

                        viewInfo = ViewInfo.FromBinary(binary);

                        viewCache[row] = viewInfo;
                    }

                    return(new View(viewInfo));
                }

                ++i;
            }

            throw new ArgumentOutOfRangeException("offset");
        }