Exemplo n.º 1
0
        protected DbStatementType ProcessStatementTypeInfoBuffer(byte[] buffer)
        {
            DbStatementType stmtType = DbStatementType.None;
            int             pos      = 0;
            int             length   = 0;
            int             type     = 0;

            while ((type = buffer[pos++]) != IscCodes.isc_info_end)
            {
                length = IscHelper.VaxInteger(buffer, pos, 2);
                pos   += 2;
                switch (type)
                {
                case IscCodes.isc_info_sql_stmt_type:
                    stmtType = (DbStatementType)IscHelper.VaxInteger(buffer, pos, length);
                    pos     += length;
                    break;

                default:
                    pos += length;
                    break;
                }
            }

            return(stmtType);
        }
Exemplo n.º 2
0
        protected int ProcessRecordsAffectedBuffer(byte[] buffer)
        {
            int insertCount = 0;
            int updateCount = 0;
            int deleteCount = 0;
            int selectCount = 0;
            int pos         = 0;
            int length      = 0;
            int type        = 0;

            while ((type = buffer[pos++]) != IscCodes.isc_info_end)
            {
                length = IscHelper.VaxInteger(buffer, pos, 2);
                pos   += 2;

                switch (type)
                {
                case IscCodes.isc_info_sql_records:
                    int l;
                    int t;

                    while ((t = buffer[pos++]) != IscCodes.isc_info_end)
                    {
                        l    = IscHelper.VaxInteger(buffer, pos, 2);
                        pos += 2;

                        switch (t)
                        {
                        case IscCodes.isc_info_req_insert_count:
                            insertCount = IscHelper.VaxInteger(buffer, pos, l);
                            break;

                        case IscCodes.isc_info_req_update_count:
                            updateCount = IscHelper.VaxInteger(buffer, pos, l);
                            break;

                        case IscCodes.isc_info_req_delete_count:
                            deleteCount = IscHelper.VaxInteger(buffer, pos, l);
                            break;

                        case IscCodes.isc_info_req_select_count:
                            selectCount = IscHelper.VaxInteger(buffer, pos, l);
                            break;
                        }

                        pos += l;
                    }
                    break;

                default:
                    pos += length;
                    break;
                }
            }

            return(insertCount + updateCount + deleteCount);
        }