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); }
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); }