亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? recover.java

?? 非常棒的java數(shù)據(jù)庫(kù)
?? JAVA
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
            }
            sb.append(Integer.toHexString(x));
        }
        writer.println("-- dump: " + sb.toString());
    }

    private void dumpLob(String fileName, boolean lobCompression) {
        OutputStream out = null;
        FileStore store = null;
        int size = 0;
        String n = fileName + (lobCompression ? ".comp" : "") + ".txt";
        InputStream in = null;
        try {
            out = FileUtils.openFileOutputStream(n, false);
            textStorage = Database.isTextStorage(fileName, false);
            byte[] magic = Database.getMagic(textStorage);
            store = FileStore.open(null, fileName, "r", magic);
            store.init();
            in = new BufferedInputStream(new FileStoreInputStream(store, this, lobCompression, false));
            byte[] buffer = new byte[Constants.IO_BUFFER_SIZE];
            while (true) {
                int l = in.read(buffer);
                if (l < 0) {
                    break;
                }
                out.write(buffer, 0, l);
                size += l;
            }
            out.close();
        } catch (Throwable e) {
            // this is usually not a problem, because we try both compressed and
            // uncompressed
            if (log) {
                logError(fileName, e);
            }
        } finally {
            IOUtils.closeSilently(out);
            IOUtils.closeSilently(in);
            closeSilently(store);
        }
        if (size == 0) {
            try {
                FileUtils.delete(n);
            } catch (SQLException e) {
                logError(n, e);
            }
        }
    }

    private void writeLogRecord(PrintWriter writer, DataPage s) {
        try {
            recordLength = s.readInt();
            if (recordLength <= 0) {
                writeDataError(writer, "recordLength<0", s.getBytes(), blockCount);
                return;
            }
            Value[] data;
            try {
                data = new Value[recordLength];
            } catch (OutOfMemoryError e) {
                writeDataError(writer, "out of memory", s.getBytes(), blockCount);
                return;
            }
            StringBuffer sb = new StringBuffer();
            sb.append("//     data: ");
            for (valueId = 0; valueId < recordLength; valueId++) {
                try {
                    Value v = s.readValue();
                    data[valueId] = v;
                    if (valueId > 0) {
                        sb.append(", ");
                    }
                    sb.append(getSQL(v));
                } catch (Exception e) {
                    if (log) {
                        logError("log data", e);
                    }
                    writeDataError(writer, "exception " + e, s.getBytes(), blockCount);
                    continue;
                } catch (OutOfMemoryError e) {
                    writeDataError(writer, "out of memory", s.getBytes(), blockCount);
                    continue;
                }
            }
            writer.println(sb.toString());
            writer.flush();
        } catch (IOException e) {
            try {
                writeDataError(writer, "error: " + e.toString(), s.getBytes(), blockCount);
            } catch (IOException e2) {
                writeError(writer, e);
            }
        }
    }

    private String getSQL(Value v) {
        if (v instanceof ValueLob) {
            ValueLob lob = (ValueLob) v;
            byte[] small = lob.getSmall();
            if (small == null) {
                String file = lob.getFileName();
                if (lob.getType() == Value.BLOB) {
                    return "READ_BLOB('" + file + ".txt')";
                } else {
                    return "READ_CLOB('" + file + ".txt')";
                }
            }
        }
        return v.getSQL();
    }

    private void setDatabaseName(String name) {
        databaseName = name;
        lobFilesInDirectories = FileUtils.exists(databaseName + Constants.SUFFIX_LOBS_DIRECTORY);
    }

    private void dumpLog(String fileName) throws SQLException {
        PrintWriter writer = null;
        FileStore store = null;
        try {
            setDatabaseName(fileName.substring(fileName.length() - Constants.SUFFIX_LOG_FILE.length()));
            writer = getWriter(fileName, ".txt");
            textStorage = Database.isTextStorage(fileName, false);
            byte[] magic = Database.getMagic(textStorage);
            store = FileStore.open(null, fileName, "r", magic);
            long length = store.length();
            writer.println("// length: " + length);
            int offset = FileStore.HEADER_LENGTH;
            int blockSize = LogFile.BLOCK_SIZE;
            int blocks = (int) (length / blockSize);
            byte[] buff = new byte[blockSize];
            DataPage s = DataPage.create(this, buff);
            s.fill(3 * blockSize);
            int len = s.length();
            s.reset();
            if (length < FileStore.HEADER_LENGTH + len) {
                // this is an empty file
                writer.println("// empty file");
                return;
            }
            store.seek(offset);
            store.readFully(s.getBytes(), 0, len);
            int id = s.readInt();
            int firstUncommittedPos = s.readInt();
            int firstUnwrittenPos = s.readInt();
            writer.println("// id:" + id);
            writer.println("// firstUncommittedPos:" + firstUncommittedPos);
            writer.println("// firstUnwrittenPos:" + firstUnwrittenPos);
            int max = (int) (length / blockSize);
            writer.println("// max:" + max);
            while (true) {
                int pos = (int) (store.getFilePointer() / blockSize);
                if ((long) pos * blockSize >= length) {
                    break;
                }
                buff = new byte[blockSize];
                store.readFully(buff, 0, blockSize);
                s = DataPage.create(this, buff);
                blocks = Math.abs(s.readInt());
                if (blocks > 1) {
                    byte[] b2 = new byte[blocks * blockSize];
                    System.arraycopy(buff, 0, b2, 0, blockSize);
                    buff = b2;
                    try {
                        store.readFully(buff, blockSize, blocks * blockSize - blockSize);
                    } catch (SQLException e) {
                        break;
                    }
                    s = DataPage.create(this, buff);
                    s.check(blocks * blockSize);
                }
                s.reset();
                blocks = Math.abs(s.readInt());
                if (blocks == 0) {
                    writer.println("// [" + pos + "] blocks: " + blocks + " (end)");
                    break;
                } else {
                    char type = (char) s.readByte();
                    int sessionId = s.readInt();
                    if (type == 'P') {
                        String transaction = s.readString();
                        writer.println("//   prepared session:" + sessionId + " tx:" + transaction);
                    } else if (type == 'C') {
                        writer.println("//   commit session:" + sessionId);
                    } else {
                        int storageId = s.readInt();
                        int recId = s.readInt();
                        int blockCount = s.readInt();
                        if (type != 'T') {
                            s.readDataPageNoSize();
                        }
                        switch (type) {
                        case 'S': {
                            char fileType = (char) s.readByte();
                            int sumLength = s.readInt();
                            byte[] summary = new byte[sumLength];
                            if (sumLength > 0) {
                                s.read(summary, 0, sumLength);
                            }
                            writer.println("//   summary session:"+sessionId+" fileType:" + fileType + " sumLength:" + sumLength);
                            dumpSummary(writer, summary);
                            break;
                        }
                        case 'T':
                            writer.println("//   truncate session:"+sessionId+" storage:" + storageId + " pos:" + recId + " blockCount:"+blockCount);
                            break;
                        case 'I':
                            writer.println("//   insert session:"+sessionId+" storage:" + storageId + " pos:" + recId + " blockCount:"+blockCount);
                            writeLogRecord(writer, s);
                            break;
                        case 'D':
                            writer.println("//   delete session:"+sessionId+" storage:" + storageId + " pos:" + recId + " blockCount:"+blockCount);
                            writeLogRecord(writer, s);
                            break;
                        default:
                            writer.println("//   type?:"+type+" session:"+sessionId+" storage:" + storageId + " pos:" + recId + " blockCount:"+blockCount);
                            break;
                        }
                    }
                }
            }
            writer.close();
        } catch (Throwable e) {
            writeError(writer, e);
        } finally {
            IOUtils.closeSilently(writer);
            closeSilently(store);
        }
    }

    private void dumpSummary(PrintWriter writer, byte[] summary) throws SQLException {
        if (summary == null || summary.length == 0) {
            writer.println("//     summary is empty");
            return;
        }
        try {
            DataInputStream in = new DataInputStream(new ByteArrayInputStream(summary));
            int b2 = in.readInt();
            for (int i = 0; i < b2 / 8; i++) {
                int x = in.read();
                if ((i % 8) == 0) {
                    writer.print("//  ");
                }
                writer.print(" " + Long.toString(i * 8) + ":");
                for (int j = 0; j < 8; j++) {
                    writer.print(((x & 1) == 1) ? "1" : "0");
                    x >>>= 1;
                }
                if ((i % 8) == 7) {
                    writer.println("");
                }
            }
            writer.println("//");
            int len = in.readInt();
            for (int i = 0; i < len; i++) {
                int storageId = in.readInt();
                if (storageId != -1) {
                    writer.println("//     pos:" + (i * DiskFile.BLOCKS_PER_PAGE) + " storage:" + storageId);
                }
            }
            while (true) {
                int s = in.readInt();
                if (s < 0) {
                    break;
                }
                int recordCount = in.readInt();
                writer.println("//     storage:" + s + " recordCount:" + recordCount);
            }
        } catch (Throwable e) {
            writeError(writer, e);
        }
    }

    private void dumpIndex(String fileName) throws SQLException {
        PrintWriter writer = null;
        FileStore store = null;
        try {
            setDatabaseName(fileName.substring(fileName.length() - Constants.SUFFIX_INDEX_FILE.length()));
            writer = getWriter(fileName, ".txt");
            textStorage = Database.isTextStorage(fileName, false);
            byte[] magic = Database.getMagic(textStorage);
            store = FileStore.open(null, fileName, "r", magic);
            long length = store.length();
            int offset = FileStore.HEADER_LENGTH;
            int blockSize = DiskFile.BLOCK_SIZE;
            int blocks = (int) (length / blockSize);
            blockCount = 1;
            int[] pageOwners = new int[blocks / DiskFile.BLOCKS_PER_PAGE];
            for (int block = 0; block < blocks; block += blockCount) {
                store.seek(offset + (long) block * blockSize);
                byte[] buff = new byte[blockSize];
                DataPage s = DataPage.create(this, buff);
                store.readFully(buff, 0, blockSize);
                blockCount = s.readInt();
                storageId = -1;
                recordLength = -1;
                valueId = -1;
                if (blockCount == 0) {
                    // free block
                    blockCount = 1;
                    continue;
                } else if (blockCount < 0) {
                    writeDataError(writer, "blockCount<0", s.getBytes(), 1);
                    blockCount = 1;
                    continue;
                } else if ((blockCount * blockSize) >= Integer.MAX_VALUE / 4) {
                    writeDataError(writer, "blockCount=" + blockCount, s.getBytes(), 1);
                    blockCount = 1;
                    continue;
                }
                try {
                    s.checkCapacity(blockCount * blockSize);
                } catch (OutOfMemoryError e) {
                    writeDataError(writer, "out of memory", s.getBytes(), 1);
                    blockCount = 1;
                    continue;
                }
                if (blockCount > 1) {
                    store.readFully(s.getBytes(), blockSize, blockCount * blockSize - blockSize);
                }
                try {
                    s.check(blockCount * blockSize);
                } catch (SQLException e) {
                    writeDataError(writer, "wrong checksum", s.getBytes(), 1);
                    blockCount = 1;
                    continue;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产自产高清不卡| 国产激情偷乱视频一区二区三区| 日韩欧美成人一区二区| 成人精品国产福利| 日韩精彩视频在线观看| 国产精品久久久久久久久久免费看 | 欧美日韩视频在线第一区 | 精品国产一二三区| 色欧美日韩亚洲| 国产福利一区二区三区在线视频| 天天综合网天天综合色| 亚洲日穴在线视频| 国产亚洲欧美日韩俺去了| 91精品国产综合久久久蜜臀图片| 91香蕉视频在线| 国产精品18久久久久| 青青国产91久久久久久| 亚洲色图欧美偷拍| 国产午夜精品一区二区三区嫩草| 欧美一二三区精品| 欧美三级电影精品| 91麻豆福利精品推荐| 国产大片一区二区| 国内久久精品视频| 美女视频黄频大全不卡视频在线播放| 一区二区三区在线视频免费| 中文字幕乱码亚洲精品一区| 精品粉嫩aⅴ一区二区三区四区| 制服丝袜亚洲色图| 欧美日韩在线免费视频| 91黄视频在线观看| 色婷婷亚洲一区二区三区| 99视频一区二区| 成人激情免费视频| 成人禁用看黄a在线| 国产精品99久久久| 国产成人精品免费一区二区| 韩国在线一区二区| 激情六月婷婷综合| 国内成+人亚洲+欧美+综合在线| 日韩成人一级大片| 日本成人在线视频网站| 日本亚洲免费观看| 免费久久99精品国产| 日韩av一级电影| 奇米精品一区二区三区在线观看一| 天天综合网天天综合色| 丝袜美腿亚洲色图| 美日韩一区二区| 久久精品国产精品亚洲综合| 久99久精品视频免费观看| 狠狠色综合日日| 国产麻豆精品95视频| 国产一区二区三区四区五区美女| 国产精品自拍av| 成人免费va视频| 91麻豆国产自产在线观看| 在线国产亚洲欧美| 欧美一区二区成人6969| 欧美成人精品二区三区99精品| 精品久久久久久久久久久久久久久久久 | 一区二区三区在线免费| 亚洲精选视频在线| 亚洲国产综合人成综合网站| 日韩电影一区二区三区| 国产福利一区在线| 色综合久久天天综合网| 欧美精品在线观看播放| www激情久久| 国产三级三级三级精品8ⅰ区| 国产精品超碰97尤物18| 一区二区三区产品免费精品久久75| 无吗不卡中文字幕| 久久se这里有精品| 不卡av在线免费观看| 欧美色电影在线| 亚洲精品一区二区在线观看| 中文字幕一区二区三区不卡| 亚洲电影中文字幕在线观看| 九九精品一区二区| 91在线视频官网| 日韩欧美一级二级| 亚洲欧洲美洲综合色网| 日本网站在线观看一区二区三区| 高潮精品一区videoshd| 欧美性极品少妇| 国产亚洲午夜高清国产拍精品| 一级特黄大欧美久久久| 国产一区二区三区免费| 在线视频欧美精品| 久久久www成人免费无遮挡大片| 麻豆国产精品777777在线| 99国产精品视频免费观看| 日韩欧美一区二区在线视频| 中文字幕一区二区三区乱码在线 | 亚洲成av人片在线观看无码| 国模冰冰炮一区二区| 在线看一区二区| 国产欧美日韩久久| 日韩国产精品久久| 一本到三区不卡视频| 久久久久99精品一区| 午夜精品国产更新| 99国产精品久久| 国产视频一区在线播放| 日韩电影在线免费看| 色婷婷亚洲婷婷| 国产精品狼人久久影院观看方式| 蜜桃久久久久久久| 欧美视频三区在线播放| 中文字幕一区不卡| 国产一区高清在线| 欧美一区二区三区四区在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 国产99精品国产| 欧美精品一区二区在线观看| 天天色综合天天| 色哟哟国产精品| 综合av第一页| 成人丝袜18视频在线观看| 久久亚洲二区三区| 久久精品国产一区二区| 欧美精品久久久久久久多人混战| 一区二区视频在线看| 97久久超碰国产精品| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 26uuu成人网一区二区三区| 性欧美大战久久久久久久久| av在线一区二区| 国产欧美一区二区三区鸳鸯浴 | 天天综合色天天| 欧美军同video69gay| 一区二区三区高清在线| 色综合久久综合| **网站欧美大片在线观看| 丁香另类激情小说| 欧美国产乱子伦 | 综合分类小说区另类春色亚洲小说欧美 | 精品国产乱子伦一区| 亚洲国产一区二区三区青草影视| 色婷婷久久久综合中文字幕| ㊣最新国产の精品bt伙计久久| 国产福利不卡视频| 国产精品第一页第二页第三页| 成人深夜在线观看| 国产精品电影一区二区三区| 91在线视频18| 亚洲线精品一区二区三区八戒| 欧美视频一区二区三区在线观看 | 亚洲特级片在线| 99久久精品免费精品国产| 亚洲色图一区二区三区| 日本电影亚洲天堂一区| 亚洲一区二区三区激情| 欧美美女黄视频| 蜜臀av亚洲一区中文字幕| 日韩精品一区二区三区四区视频| 精品一区二区三区久久久| 精品国产亚洲在线| 粗大黑人巨茎大战欧美成人| 国产精品国产三级国产| 欧美在线一二三| 日本中文字幕一区二区有限公司| 精品av综合导航| av日韩在线网站| 亚洲高清免费观看| 精品国产成人在线影院 | 正在播放亚洲一区| 国产原创一区二区| 国产精品久久久久久久久晋中 | 国产婷婷精品av在线| 99re热视频这里只精品| 一区二区三区四区不卡视频| 制服丝袜在线91| 成人高清伦理免费影院在线观看| 亚洲欧美日韩国产手机在线| 欧美另类久久久品| 国产乱国产乱300精品| 亚洲精品视频一区二区| 日韩一区二区免费在线电影| 成人激情午夜影院| 日韩高清不卡一区| 国产精品女主播av| 91精品国产色综合久久不卡蜜臀| 国产成人亚洲精品青草天美| 一区二区三区不卡视频在线观看| 日韩视频123| 91偷拍与自偷拍精品| 精品一区二区三区香蕉蜜桃| 亚洲免费视频中文字幕| 精品国产sm最大网站| 色综合色狠狠天天综合色| 久久成人免费日本黄色| 樱桃视频在线观看一区| 久久久久久电影| 欧美精品v日韩精品v韩国精品v| 不卡视频免费播放| 久久电影网站中文字幕| 亚洲1区2区3区视频| 国产精品久久久久婷婷|