当前位置: 首页>>代码示例>>C#>>正文


C# TdsParserStateObject.ReadUInt16方法代码示例

本文整理汇总了C#中System.Data.SqlClient.TdsParserStateObject.ReadUInt16方法的典型用法代码示例。如果您正苦于以下问题:C# TdsParserStateObject.ReadUInt16方法的具体用法?C# TdsParserStateObject.ReadUInt16怎么用?C# TdsParserStateObject.ReadUInt16使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Data.SqlClient.TdsParserStateObject的用法示例。


在下文中一共展示了TdsParserStateObject.ReadUInt16方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Run


//.........这里部分代码省略.........
                    {
                        stateObj._cleanupMetaData = this.ProcessMetaData(tokenLength, stateObj);
                    }
                    else if (cmdHandler != null)
                    {
                        stateObj._cleanupMetaData = cmdHandler.MetaData;
                    }
                    if (dataStream != null)
                    {
                        byte num5 = stateObj.PeekByte();
                        dataStream.SetMetaData(stateObj._cleanupMetaData, (0xa4 == num5) || (0xa5 == num5));
                    }
                    else if (bulkCopyHandler != null)
                    {
                        bulkCopyHandler.SetMetaData(stateObj._cleanupMetaData);
                    }
                    goto Label_06D5;

                case 0xd1:
                    if (bulkCopyHandler == null)
                    {
                        if (RunBehavior.ReturnImmediately != (RunBehavior.ReturnImmediately & runBehavior))
                        {
                            this.SkipRow(stateObj._cleanupMetaData, stateObj);
                        }
                        break;
                    }
                    this.ProcessRow(stateObj._cleanupMetaData, bulkCopyHandler.CreateRowBuffer(), bulkCopyHandler.CreateIndexMap(), stateObj);
                    break;

                case 0xd3:
                    if (RunBehavior.ReturnImmediately != (RunBehavior.ReturnImmediately & runBehavior))
                    {
                        int id = stateObj.ReadUInt16();
                        this.SkipRow(stateObj._cleanupAltMetaDataSetArray.GetAltMetaData(id), stateObj);
                    }
                    flag = true;
                    goto Label_06D5;

                case 0xe3:
                {
                    SqlEnvChange[] changeArray = this.ProcessEnvChange(tokenLength, stateObj);
                    for (int i = 0; i < changeArray.Length; i++)
                    {
                        if ((changeArray[i] == null) || this.Connection.IgnoreEnvChange)
                        {
                            continue;
                        }
                        switch (changeArray[i].type)
                        {
                            case 8:
                            case 11:
                                this._currentTransaction = this._pendingTransaction;
                                this._pendingTransaction = null;
                                if (this._currentTransaction == null)
                                {
                                    break;
                                }
                                this._currentTransaction.TransactionId = changeArray[i].newLongValue;
                                goto Label_04B4;

                            case 9:
                            case 12:
                            case 0x11:
                                this._retainedTransactionId = 0L;
                                goto Label_04F7;
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:67,代码来源:TdsParser.cs

示例2: GetAltRowId

 internal int GetAltRowId(TdsParserStateObject stateObj)
 {
     stateObj.ReadByte();
     return stateObj.ReadUInt16();
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:5,代码来源:TdsParser.cs

示例3: ReadSqlValueInternal


//.........这里部分代码省略.........
                    this.ReadSqlVariant(value, length, stateObj);
                    return;

                case 0x68:
                case 50:
                    value.Boolean = stateObj.ReadByte() != 0;
                    return;

                case 0x23:
                case 0x2e:
                case 0x2f:
                case 0x31:
                case 0x33:
                case 0x35:
                case 0x36:
                case 0x37:
                case 0x39:
                    return;

                case 0x24:
                {
                    byte[] buffer2 = new byte[length];
                    stateObj.ReadByteArray(buffer2, 0, length);
                    value.SqlGuid = new SqlGuid(buffer2, true);
                    return;
                }
                case 0x26:
                    if (length == 1)
                    {
                        break;
                    }
                    if (length == 2)
                    {
                        goto Label_00FE;
                    }
                    if (length != 4)
                    {
                        goto Label_011A;
                    }
                    goto Label_010C;

                case 0x30:
                    break;

                case 0x34:
                    goto Label_00FE;

                case 0x38:
                    goto Label_010C;

                case 0x3a:
                    goto Label_0187;

                case 0x3b:
                    goto Label_012D;

                case 60:
                    goto Label_014E;

                case 0x3d:
                    goto Label_01A2;

                case 0x3e:
                    goto Label_013B;

                default:
                    return;
            }
            value.Byte = stateObj.ReadByte();
            return;
        Label_00FE:
            value.Int16 = stateObj.ReadInt16();
            return;
        Label_010C:
            value.Int32 = stateObj.ReadInt32();
            return;
        Label_011A:
            value.Int64 = stateObj.ReadInt64();
            return;
        Label_012D:
            value.Single = stateObj.ReadSingle();
            return;
        Label_013B:
            value.Double = stateObj.ReadDouble();
            return;
        Label_014E:
            num4 = stateObj.ReadInt32();
            uint num3 = stateObj.ReadUInt32();
            long num2 = (num4 << 0x20) + num3;
            value.SetToMoney(num2);
            return;
        Label_0173:
            value.SetToMoney((long) stateObj.ReadInt32());
            return;
        Label_0187:
            value.SetToDateTime(stateObj.ReadUInt16(), stateObj.ReadUInt16() * SqlDateTime.SQLTicksPerMinute);
            return;
        Label_01A2:
            value.SetToDateTime(stateObj.ReadInt32(), (int) stateObj.ReadUInt32());
        }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:101,代码来源:TdsParser.cs

示例4: ReadSqlVariant

        internal void ReadSqlVariant(SqlBuffer value, int lenTotal, TdsParserStateObject stateObj)
        {
            byte tdsType = stateObj.ReadByte();
            byte num2 = stateObj.ReadByte();
            byte propBytes = MetaType.GetSqlDataType(tdsType, 0, 0).PropBytes;
            int num9 = 2 + num2;
            int length = lenTotal - num9;
            switch (tdsType)
            {
                case 0xe7:
                case 0xef:
                case 0xa7:
                case 0xaf:
                    this.ProcessCollation(stateObj);
                    stateObj.ReadUInt16();
                    if (num2 > propBytes)
                    {
                        this.SkipBytes(num2 - propBytes, stateObj);
                    }
                    this.ReadSqlStringValue(value, tdsType, length, null, false, stateObj);
                    return;

                case 0xa5:
                case 0xad:
                    stateObj.ReadUInt16();
                    if (num2 > propBytes)
                    {
                        this.SkipBytes(num2 - propBytes, stateObj);
                    }
                    break;

                case 0xa6:
                case 0xae:
                case 0x25:
                case 0x26:
                case 0x27:
                case 0x2c:
                case 0x2d:
                case 0x2e:
                case 0x2f:
                case 0x31:
                case 0x33:
                case 0x35:
                case 0x36:
                case 0x37:
                case 0x39:
                case 0x6b:
                    return;

                case 0x7a:
                case 0x7f:
                case 0x24:
                case 0x30:
                case 50:
                case 0x34:
                case 0x38:
                case 0x3a:
                case 0x3b:
                case 60:
                case 0x3d:
                case 0x3e:
                    break;

                case 40:
                    this.ReadSqlDateTime(value, tdsType, length, 0, stateObj);
                    return;

                case 0x29:
                case 0x2a:
                case 0x2b:
                {
                    byte scale = stateObj.ReadByte();
                    if (num2 > propBytes)
                    {
                        this.SkipBytes(num2 - propBytes, stateObj);
                    }
                    this.ReadSqlDateTime(value, tdsType, length, scale, stateObj);
                    return;
                }
                case 0x6a:
                case 0x6c:
                {
                    byte precision = stateObj.ReadByte();
                    byte num7 = stateObj.ReadByte();
                    if (num2 > propBytes)
                    {
                        this.SkipBytes(num2 - propBytes, stateObj);
                    }
                    this.ReadSqlDecimal(value, 0x11, precision, num7, stateObj);
                    return;
                }
                default:
                    return;
            }
            this.ReadSqlValueInternal(value, tdsType, 0, length, stateObj);
        }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:96,代码来源:TdsParser.cs

示例5: CommonProcessMetaData

        private void CommonProcessMetaData(TdsParserStateObject stateObj, _SqlMetaData col)
        {
            uint num5;
            int length = 0;
            if (this.IsYukonOrNewer)
            {
                num5 = stateObj.ReadUInt32();
            }
            else
            {
                num5 = stateObj.ReadUInt16();
            }
            byte num3 = stateObj.ReadByte();
            col.updatability = (byte) ((num3 & 11) >> 2);
            col.isNullable = 1 == (num3 & 1);
            col.isIdentity = 0x10 == (num3 & 0x10);
            stateObj.ReadByte();
            col.isColumnSet = 4 == (num3 & 4);
            byte tdsType = stateObj.ReadByte();
            if (tdsType == 0xf1)
            {
                col.length = 0xffff;
            }
            else if (this.IsVarTimeTds(tdsType))
            {
                col.length = 0;
            }
            else if (tdsType == 40)
            {
                col.length = 3;
            }
            else
            {
                col.length = this.GetTokenLength(tdsType, stateObj);
            }
            col.metaType = MetaType.GetSqlDataType(tdsType, num5, col.length);
            col.type = col.metaType.SqlDbType;
            if (this._isShiloh)
            {
                col.tdsType = col.isNullable ? col.metaType.NullableType : col.metaType.TDSType;
            }
            else
            {
                col.tdsType = tdsType;
            }
            if (this._isYukon)
            {
                if (240 == tdsType)
                {
                    this.ProcessUDTMetaData(col, stateObj);
                }
                if (col.length == 0xffff)
                {
                    col.metaType = MetaType.GetMaxMetaTypeFromMetaType(col.metaType);
                    col.length = 0x7fffffff;
                    if ((tdsType == 0xf1) && ((stateObj.ReadByte() & 1) != 0))
                    {
                        length = stateObj.ReadByte();
                        if (length != 0)
                        {
                            col.xmlSchemaCollectionDatabase = stateObj.ReadString(length);
                        }
                        length = stateObj.ReadByte();
                        if (length != 0)
                        {
                            col.xmlSchemaCollectionOwningSchema = stateObj.ReadString(length);
                        }
                        length = stateObj.ReadInt16();
                        if (length != 0)
                        {
                            col.xmlSchemaCollectionName = stateObj.ReadString(length);
                        }
                    }
                }
            }
            if (col.type == SqlDbType.Decimal)
            {
                col.precision = stateObj.ReadByte();
                col.scale = stateObj.ReadByte();
            }
            if (col.metaType.IsVarTime)
            {
                col.scale = stateObj.ReadByte();
                switch (col.metaType.SqlDbType)
                {
                    case SqlDbType.Time:
                        col.length = MetaType.GetTimeSizeFromScale(col.scale);
                        break;

                    case SqlDbType.DateTime2:
                        col.length = 3 + MetaType.GetTimeSizeFromScale(col.scale);
                        break;

                    case SqlDbType.DateTimeOffset:
                        col.length = 5 + MetaType.GetTimeSizeFromScale(col.scale);
                        break;
                }
            }
            if ((this._isShiloh && col.metaType.IsCharType) && (tdsType != 0xf1))
            {
//.........这里部分代码省略.........
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:101,代码来源:TdsParser.cs

示例6: ProcessUDTMetaData

 private void ProcessUDTMetaData(SqlMetaDataPriv metaData, TdsParserStateObject stateObj)
 {
     metaData.length = stateObj.ReadUInt16();
     int length = stateObj.ReadByte();
     if (length != 0)
     {
         metaData.udtDatabaseName = stateObj.ReadString(length);
     }
     length = stateObj.ReadByte();
     if (length != 0)
     {
         metaData.udtSchemaName = stateObj.ReadString(length);
     }
     length = stateObj.ReadByte();
     if (length != 0)
     {
         metaData.udtTypeName = stateObj.ReadString(length);
     }
     length = stateObj.ReadUInt16();
     if (length != 0)
     {
         metaData.udtAssemblyQualifiedName = stateObj.ReadString(length);
     }
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:24,代码来源:TdsParser.cs

示例7: ProcessOneTable

        private MultiPartTableName ProcessOneTable(TdsParserStateObject stateObj, ref int length)
        {
            ushort num;
            if (this._isShilohSP1)
            {
                MultiPartTableName name = new MultiPartTableName();
                byte num2 = stateObj.ReadByte();
                length--;
                switch (num2)
                {
                    case 4:
                        num = stateObj.ReadUInt16();
                        length -= 2;
                        name.ServerName = stateObj.ReadString(num);
                        num2 = (byte) (num2 - 1);
                        length -= num * 2;
                        break;

                    case 3:
                        num = stateObj.ReadUInt16();
                        length -= 2;
                        name.CatalogName = stateObj.ReadString(num);
                        length -= num * 2;
                        num2 = (byte) (num2 - 1);
                        break;

                    case 2:
                        num = stateObj.ReadUInt16();
                        length -= 2;
                        name.SchemaName = stateObj.ReadString(num);
                        length -= num * 2;
                        num2 = (byte) (num2 - 1);
                        break;

                    case 1:
                        num = stateObj.ReadUInt16();
                        length -= 2;
                        name.TableName = stateObj.ReadString(num);
                        length -= num * 2;
                        num2 = (byte) (num2 - 1);
                        break;
                }
                return name;
            }
            num = stateObj.ReadUInt16();
            length -= 2;
            string str = stateObj.ReadString(num);
            length -= num * 2;
            return new MultiPartTableName(MultipartIdentifier.ParseMultipartIdentifier(str, "[\"", "]\"", "SQL_TDSParserTableName", false));
        }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:50,代码来源:TdsParser.cs

示例8: ProcessReturnValue

 internal SqlReturnValue ProcessReturnValue(int length, TdsParserStateObject stateObj)
 {
     int tokenLength;
     uint num8;
     SqlReturnValue metaData = new SqlReturnValue {
         length = length
     };
     if (this._isYukon)
     {
         metaData.parmIndex = stateObj.ReadUInt16();
     }
     byte num2 = stateObj.ReadByte();
     if (num2 > 0)
     {
         metaData.parameter = stateObj.ReadString(num2);
     }
     stateObj.ReadByte();
     if (this.IsYukonOrNewer)
     {
         num8 = stateObj.ReadUInt32();
     }
     else
     {
         num8 = stateObj.ReadUInt16();
     }
     stateObj.ReadUInt16();
     byte tdsType = stateObj.ReadByte();
     if (tdsType == 0xf1)
     {
         tokenLength = 0xffff;
     }
     else if (this.IsVarTimeTds(tdsType))
     {
         tokenLength = 0;
     }
     else if (tdsType == 40)
     {
         tokenLength = 3;
     }
     else
     {
         tokenLength = this.GetTokenLength(tdsType, stateObj);
     }
     metaData.metaType = MetaType.GetSqlDataType(tdsType, num8, tokenLength);
     metaData.type = metaData.metaType.SqlDbType;
     if (this._isShiloh)
     {
         metaData.tdsType = metaData.metaType.NullableType;
         metaData.isNullable = true;
         if (tokenLength == 0xffff)
         {
             metaData.metaType = MetaType.GetMaxMetaTypeFromMetaType(metaData.metaType);
         }
     }
     else
     {
         if (metaData.metaType.NullableType == tdsType)
         {
             metaData.isNullable = true;
         }
         metaData.tdsType = tdsType;
     }
     if (metaData.type == SqlDbType.Decimal)
     {
         metaData.precision = stateObj.ReadByte();
         metaData.scale = stateObj.ReadByte();
     }
     if (metaData.metaType.IsVarTime)
     {
         metaData.scale = stateObj.ReadByte();
     }
     if (tdsType == 240)
     {
         this.ProcessUDTMetaData(metaData, stateObj);
     }
     if (metaData.type == SqlDbType.Xml)
     {
         if ((stateObj.ReadByte() & 1) != 0)
         {
             num2 = stateObj.ReadByte();
             if (num2 != 0)
             {
                 metaData.xmlSchemaCollectionDatabase = stateObj.ReadString(num2);
             }
             num2 = stateObj.ReadByte();
             if (num2 != 0)
             {
                 metaData.xmlSchemaCollectionOwningSchema = stateObj.ReadString(num2);
             }
             short num7 = stateObj.ReadInt16();
             if (num7 != 0)
             {
                 metaData.xmlSchemaCollectionName = stateObj.ReadString(num7);
             }
         }
     }
     else if (this._isShiloh && metaData.metaType.IsCharType)
     {
         metaData.collation = this.ProcessCollation(stateObj);
         int codePage = this.GetCodePage(metaData.collation, stateObj);
//.........这里部分代码省略.........
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:101,代码来源:TdsParser.cs

示例9: ProcessError

 internal SqlError ProcessError(byte token, TdsParserStateObject stateObj)
 {
     int num2;
     int infoNumber = stateObj.ReadInt32();
     byte errorState = stateObj.ReadByte();
     byte errorClass = stateObj.ReadByte();
     int length = stateObj.ReadUInt16();
     string errorMessage = stateObj.ReadString(length);
     length = stateObj.ReadByte();
     if (length != 0)
     {
         stateObj.ReadString(length);
     }
     length = stateObj.ReadByte();
     string procedure = stateObj.ReadString(length);
     if (this._isYukon)
     {
         num2 = stateObj.ReadInt32();
     }
     else
     {
         num2 = stateObj.ReadUInt16();
         if ((this._state == TdsParserState.OpenNotLoggedIn) && (stateObj.PeekByte() == 0))
         {
             num2 = (num2 << 0x10) + stateObj.ReadUInt16();
         }
     }
     return new SqlError(infoNumber, errorState, errorClass, this._server, errorMessage, procedure, num2);
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:29,代码来源:TdsParser.cs

示例10: ProcessEnvChange


//.........这里部分代码省略.........
                            env.newCollation = this.ProcessCollation(stateObj);
                            this._defaultCollation = env.newCollation;
                            int codePage = this.GetCodePage(env.newCollation, stateObj);
                            if (codePage != this._defaultCodePage)
                            {
                                this._defaultCodePage = codePage;
                                this._defaultEncoding = Encoding.GetEncoding(this._defaultCodePage);
                            }
                            this._defaultLCID = env.newCollation.LCID;
                        }
                        env.oldLength = stateObj.ReadByte();
                        if (env.oldLength == 5)
                        {
                            env.oldCollation = this.ProcessCollation(stateObj);
                        }
                        env.length = (3 + env.newLength) + env.oldLength;
                        goto Label_03E0;

                    case 8:
                    case 9:
                    case 10:
                    case 11:
                    case 12:
                    case 0x11:
                        env.newLength = stateObj.ReadByte();
                        if (env.newLength <= 0)
                        {
                            goto Label_02B0;
                        }
                        env.newLongValue = stateObj.ReadInt64();
                        goto Label_02B8;

                    case 13:
                        this.ReadTwoStringFields(env, stateObj);
                        goto Label_03E0;

                    case 15:
                        env.newLength = stateObj.ReadInt32();
                        env.newBinValue = new byte[env.newLength];
                        stateObj.ReadByteArray(env.newBinValue, 0, env.newLength);
                        env.oldLength = stateObj.ReadByte();
                        env.length = 5 + env.newLength;
                        goto Label_03E0;

                    case 0x10:
                    case 0x12:
                        this.ReadTwoBinaryFields(env, stateObj);
                        goto Label_03E0;

                    case 0x13:
                        this.ReadTwoStringFields(env, stateObj);
                        goto Label_03E0;

                    case 20:
                    {
                        env.newLength = stateObj.ReadUInt16();
                        byte protocol = stateObj.ReadByte();
                        ushort port = stateObj.ReadUInt16();
                        ushort length = stateObj.ReadUInt16();
                        string servername = stateObj.ReadString(length);
                        env.newRoutingInfo = new RoutingInfo(protocol, port, servername);
                        num5 = stateObj.ReadUInt16();
                        num3 = 0;
                        goto Label_03C9;
                    }
                    default:
                        goto Label_03E0;
                }
                string s = env.newValue.Substring(2);
                this._defaultCodePage = int.Parse(s, NumberStyles.Integer, CultureInfo.InvariantCulture);
                this._defaultEncoding = Encoding.GetEncoding(this._defaultCodePage);
                goto Label_03E0;
            Label_02B0:
                env.newLongValue = 0L;
            Label_02B8:
                env.oldLength = stateObj.ReadByte();
                if (env.oldLength > 0)
                {
                    env.oldLongValue = stateObj.ReadInt64();
                }
                else
                {
                    env.oldLongValue = 0L;
                }
                env.length = (3 + env.newLength) + env.oldLength;
                goto Label_03E0;
            Label_03BC:
                stateObj.ReadByte();
                num3++;
            Label_03C9:
                if (num3 < num5)
                {
                    goto Label_03BC;
                }
                env.length = (env.newLength + num5) + 5;
            Label_03E0:
                num4 += env.length;
            }
            return changeArray;
        }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:101,代码来源:TdsParser.cs

示例11: ProcessDone

 private void ProcessDone(SqlCommand cmd, SqlDataReader reader, ref RunBehavior run, TdsParserStateObject stateObj)
 {
     int num2;
     ushort status = stateObj.ReadUInt16();
     ushort curCmd = stateObj.ReadUInt16();
     if (this._isYukon)
     {
         num2 = (int) stateObj.ReadInt64();
     }
     else
     {
         num2 = stateObj.ReadInt32();
         if (((this._state == TdsParserState.OpenNotLoggedIn) && (stateObj._inBytesRead > stateObj._inBytesUsed)) && (stateObj.PeekByte() == 0))
         {
             num2 = stateObj.ReadInt32();
         }
     }
     if (0x20 == (status & 0x20))
     {
         stateObj._attentionReceived = true;
     }
     if ((cmd != null) && (0x10 == (status & 0x10)))
     {
         if (curCmd != 0xc1)
         {
             cmd.InternalRecordsAffected = num2;
         }
         if (stateObj._receivedColMetaData || (curCmd != 0xc1))
         {
             cmd.OnStatementCompleted(num2);
         }
     }
     stateObj._receivedColMetaData = false;
     if (((2 == (2 & status)) && (this._errors == null)) && (!stateObj._errorTokenReceived && (RunBehavior.Clean != (RunBehavior.Clean & run))))
     {
         this.Errors.Add(new SqlError(0, 0, 11, this._server, SQLMessage.SevereError(), "", 0));
         if ((reader != null) && !reader.IsInitialized)
         {
             run = RunBehavior.UntilDone;
         }
     }
     if ((0x100 == (0x100 & status)) && (RunBehavior.Clean != (RunBehavior.Clean & run)))
     {
         this.Errors.Add(new SqlError(0, 0, 20, this._server, SQLMessage.SevereError(), "", 0));
         if ((reader != null) && !reader.IsInitialized)
         {
             run = RunBehavior.UntilDone;
         }
     }
     this.ProcessSqlStatistics(curCmd, status, num2);
     if (1 != (status & 1))
     {
         stateObj._errorTokenReceived = false;
         if (stateObj._inBytesUsed >= stateObj._inBytesRead)
         {
             stateObj._pendingData = false;
         }
     }
     if (!stateObj._pendingData && stateObj._hasOpenResult)
     {
         stateObj.DecrementOpenResultCount();
     }
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:63,代码来源:TdsParser.cs

示例12: ProcessAltMetaData

        internal _SqlMetaDataSet ProcessAltMetaData(int cColumns, TdsParserStateObject stateObj)
        {
            _SqlMetaDataSet set = new _SqlMetaDataSet(cColumns);
            int[] numArray = new int[cColumns];
            set.id = stateObj.ReadUInt16();
            for (int i = stateObj.ReadByte(); i > 0; i--)
            {
                this.SkipBytes(2, stateObj);
            }
            for (int j = 0; j < cColumns; j++)
            {
                _SqlMetaData col = set[j];
                col.op = stateObj.ReadByte();
                col.operand = stateObj.ReadUInt16();
                this.CommonProcessMetaData(stateObj, col);
                if (ADP.IsEmpty(col.column))
                {
                    switch (col.op)
                    {
                        case 0x30:
                            col.column = "stdev";
                            break;

                        case 0x31:
                            col.column = "stdevp";
                            break;

                        case 50:
                            col.column = "var";
                            break;

                        case 0x33:
                            col.column = "varp";
                            break;

                        case 9:
                            goto Label_00FA;

                        case 0x4b:
                            col.column = "cnt";
                            break;

                        case 0x4d:
                            col.column = "sum";
                            break;

                        case 0x4f:
                            col.column = "avg";
                            break;

                        case 0x51:
                            col.column = "min";
                            break;

                        case 0x52:
                            col.column = "max";
                            break;

                        case 0x53:
                            col.column = "any";
                            break;

                        case 0x56:
                            col.column = "noop";
                            break;
                    }
                }
                goto Label_017A;
            Label_00FA:
                col.column = "cntb";
            Label_017A:
                numArray[j] = j;
            }
            set.indexMap = numArray;
            set.visibleColumns = cColumns;
            return set;
        }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:77,代码来源:TdsParser.cs

示例13: GetTokenLength

        internal int GetTokenLength(byte token, TdsParserStateObject stateObj)
        {
            if (this._isYukon)
            {
                if (token == 240)
                {
                    return -1;
                }
                if (token == 0xac)
                {
                    return -1;
                }
                if (token == 0xf1)
                {
                    return stateObj.ReadUInt16();
                }
            }
            switch ((token & 0x30))
            {
                case 0x20:
                case 0:
                    if ((token & 0x80) != 0)
                    {
                        return stateObj.ReadUInt16();
                    }
                    if ((token & 12) == 0)
                    {
                        return stateObj.ReadInt32();
                    }
                    return stateObj.ReadByte();

                case 0x30:
                    return ((((int) 1) << ((token & 12) >> 2)) & 0xff);

                case 0x10:
                    return 0;
            }
            return 0;
        }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:39,代码来源:TdsParser.cs


注:本文中的System.Data.SqlClient.TdsParserStateObject.ReadUInt16方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。