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

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

?? resultset.java

?? jsp數(shù)據(jù)庫系統(tǒng)
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/*
   Copyright (C) 2002 MySQL AB

      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
      (at your option) any later version.

      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.

      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

 */
package com.mysql.jdbc;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.StringReader;

import java.math.BigDecimal;

import java.net.MalformedURLException;
import java.net.URL;

import java.sql.Array;
import java.sql.Date;
import java.sql.Ref;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Time;
import java.sql.Timestamp;
import java.sql.Types;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;


/**
 * A ResultSet provides access to a table of data generated by executing a
 * Statement.  The table rows are retrieved in sequence.  Within a row its
 * column values can be accessed in any order.
 * 
 * <P>
 * A ResultSet maintains a cursor pointing to its current row of data.
 * Initially the cursor is positioned before the first row.  The 'next' method
 * moves the cursor to the next row.
 * </p>
 * 
 * <P>
 * The getXXX methods retrieve column values for the current row.  You can
 * retrieve values either using the index number of the column, or by using
 * the name of the column.  In general using the column index will be more
 * efficient.  Columns are numbered from 1.
 * </p>
 * 
 * <P>
 * For maximum portability, ResultSet columns within each row should be read in
 * left-to-right order and each column should be read only once.
 * </p>
 * 
 * <P>
 * For the getXXX methods, the JDBC driver attempts to convert the underlying
 * data to the specified Java type and returns a suitable Java value.  See the
 * JDBC specification for allowable mappings from SQL types to Java types with
 * the ResultSet getXXX methods.
 * </p>
 * 
 * <P>
 * Column names used as input to getXXX methods are case insenstive.  When
 * performing a getXXX using a column name, if several columns have the same
 * name, then the value of the first matching column will be returned.  The
 * column name option is designed to be used when column names are used in the
 * SQL Query.  For columns that are NOT explicitly named in the query, it is
 * best to use column numbers.  If column names were used there is no way for
 * the programmer to guarentee that they actually refer to the intended
 * columns.
 * </p>
 * 
 * <P>
 * A ResultSet is automatically closed by the Statement that generated it when
 * that Statement is closed, re-executed, or is used to retrieve the next
 * result from a sequence of multiple results.
 * </p>
 * 
 * <P>
 * The number, types and properties of a ResultSet's columns are provided by
 * the ResultSetMetaData object returned by the getMetaData method.
 * </p>
 *
 * @author Mark Matthews
 * @version $Id: ResultSet.java,v 1.18.2.25 2004/02/06 00:55:37 mmatthew Exp $
 *
 * @see ResultSetMetaData
 * @see java.sql.ResultSet
 */
public class ResultSet implements java.sql.ResultSet {
    /**
     * This method ends up being staticly synchronized, so just store our own
     * copy....
     */
    private TimeZone defaultTimeZone;

    /** The Connection instance that created us */
    protected com.mysql.jdbc.Connection connection; // The connection that created us

    /** Map column names (and all of their permutations) to column indices */
    protected Map columnNameToIndex = null;

    /** Map of fully-specified column names to column indices */
    protected Map fullColumnNameToIndex = null;

    /** The actual rows */
    protected RowData rowData; // The results

    /** The warning chain */
    protected java.sql.SQLWarning warningChain = null;

    /** The statement that created us */
    protected com.mysql.jdbc.Statement owningStatement;

    /** The catalog that was in use when we were created */
    protected String catalog = null;

    /**
     * Any info message from the server that was created while generating this
     * result set (if 'info parsing'  is enabled for the connection).
     */
    protected String serverInfo = null;

    /** The fields for this result set */
    protected Field[] fields; // The fields

    /** Pointer to current row data */
    protected byte[][] thisRow; // Values for current row

    /** Are we in the middle of doing updates to the current row? */
    protected boolean doingUpdates = false;

    /** Has this result set been closed? */
    protected boolean isClosed = false;

    /** Are we on the insert row? */
    protected boolean onInsertRow = false;

    /**
     * Do we actually contain rows, or just information about
     * UPDATE/INSERT/DELETE?
     */
    protected boolean reallyResult = false;

    /** Did the previous value retrieval find a NULL? */
    protected boolean wasNullFlag = false;

    /**
     * First character of the query that created this result set...Used to
     * determine whether or not to parse server info messages in certain
     * circumstances.
     */
    protected char firstCharOfQuery;

    /** The current row #, -1 == before start of result set */
    protected int currentRow = -1; // Cursor to current row;

    /** The direction to fetch rows (always FETCH_FORWARD) */
    protected int fetchDirection = FETCH_FORWARD;

    /** The number of rows to fetch in one go... */
    protected int fetchSize = 0;

    /** Are we read-only or updatable? */
    protected int resultSetConcurrency = 0;

    /** Are we scroll-sensitive/insensitive? */
    protected int resultSetType = 0;

    /** How many rows were affected by UPDATE/INSERT/DELETE? */
    protected long updateCount;

    // These are longs for
    // recent versions of the MySQL server.
    //
    // They get reduced to ints via the JDBC API,
    // but can be retrieved through a MySQLStatement
    // in their entirety.
    //

    /** Value generated for AUTO_INCREMENT columns */
    protected long updateId = -1;
    private Calendar fastDateCal = null;
    private boolean hasBuiltIndexMapping = false;
    private boolean useStrictFloatingPoint = false;

    /**
     * Create a result set for an executeUpdate statement.
     *
     * @param updateCount the number of rows affected by the update
     * @param updateID the autoincrement value (if any)
     */
    public ResultSet(long updateCount, long updateID) {
        this.updateCount = updateCount;
        this.updateId = updateID;
        reallyResult = false;
        fields = new Field[0];
    }

    /**
     * Create a new ResultSet
     *
     * @param catalog the database in use when we were created
     * @param fields an array of Field objects (basically, the ResultSet
     *        MetaData)
     * @param tuples actual row data
     * @param conn the Connection that created us.
     *
     * @throws SQLException if an error occurs
     */
    public ResultSet(String catalog, Field[] fields, RowData tuples,
        com.mysql.jdbc.Connection conn) throws SQLException {
        this(fields, tuples);
        setConnection(conn);
        this.catalog = catalog;
        
    }

    /**
     * Creates a new ResultSet object.
     *
     * @param fields DOCUMENT ME!
     * @param tuples DOCUMENT ME!
     *
     * @throws SQLException DOCUMENT ME!
     */
    public ResultSet(Field[] fields, RowData tuples) throws SQLException {
        //_currentRow   = -1;
        this.fields = fields;
        this.rowData = tuples;
        this.updateCount = (long) rowData.size();

        if (Driver.DEBUG) {
            System.out.println("Retrieved " + updateCount + " rows");
        }

        this.reallyResult = true;

        // Check for no results
        if (this.rowData.size() > 0) {
            //_thisRow = _rows.next();
            if (this.updateCount == 1) {
                if (this.thisRow == null) {
                    //_currentRow = -1;
                    this.rowData.close(); // empty result set
                    this.updateCount = -1;
                }
            }
        } else {
            this.thisRow = null;
        }

        this.rowData.setOwner(this);
    }

    /**
     * JDBC 2.0
     * 
     * <p>
     * Determine if the cursor is after the last row in the result set.
     * </p>
     *
     * @return true if after the last row, false otherwise.  Returns false when
     *         the result set contains no rows.
     *
     * @exception SQLException if a database-access error occurs.
     */
    public boolean isAfterLast() throws SQLException {
        if (Driver.TRACE) {
            Object[] args = {  };
            Debug.methodCall(this, "isAfterLast", args);
        }

        boolean b = rowData.isAfterLast();

        if (Driver.TRACE) {
            Debug.returnValue(this, "isAfterLast", new Boolean(b));
        }

        return b;
    }

    /**
     * JDBC 2.0 Get an array column.
     *
     * @param i the first column is 1, the second is 2, ...
     *
     * @return an object representing an SQL array
     *
     * @throws SQLException if a database error occurs
     * @throws NotImplemented DOCUMENT ME!
     */
    public java.sql.Array getArray(int i) throws SQLException {
        throw new NotImplemented();
    }

    /**
     * JDBC 2.0 Get an array column.
     *
     * @param colName the column name
     *
     * @return an object representing an SQL array
     *
     * @throws SQLException if a database error occurs
     * @throws NotImplemented DOCUMENT ME!
     */
    public java.sql.Array getArray(String colName) throws SQLException {
        throw new NotImplemented();
    }

    /**
     * A column value can be retrieved as a stream of ASCII characters and then
     * read in chunks from the stream.  This method is particulary suitable
     * for retrieving large LONGVARCHAR values. The JDBC driver will do any
     * necessary conversion from the database format into ASCII.
     * 
     * <p>
     * <B>Note:</B> All the data in the returned stream must be read prior to
     * getting the value of any other column.  The next call to a get method
     * implicitly closes the stream.  Also, a stream may return 0 for
     * available() whether there is data available or not.
     * </p>
     *
     * @param columnIndex the first column is 1, the second is 2, ...
     *
     * @return a Java InputStream that delivers the database column value as a
     *         stream of one byte ASCII characters.  If the value is SQL NULL
     *         then the result is null
     *
     * @exception java.sql.SQLException if a database access error occurs
     *
     * @see getBinaryStream
     */
    public InputStream getAsciiStream(int columnIndex)
        throws java.sql.SQLException {
        checkRowPos();

        return getBinaryStream(columnIndex);
    }

    /**
     * DOCUMENT ME!
     *
     * @param columnName DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     * @throws java.sql.SQLException DOCUMENT ME!
     */
    public InputStream getAsciiStream(String columnName)
        throws java.sql.SQLException {
        return getAsciiStream(findColumn(columnName));
    }

    //---------------------------------------------------------------------
    // Traversal/Positioning
    //---------------------------------------------------------------------

    /**
     * JDBC 2.0
     * 
     * <p>
     * Determine if the cursor is before the first row in the result set.
     * </p>
     *
     * @return true if before the first row, false otherwise. Returns false
     *         when the result set contains no rows.
     *
     * @exception SQLException if a database-access error occurs.
     */
    public boolean isBeforeFirst() throws SQLException {
        if (Driver.TRACE) {
            Object[] args = {  };
            Debug.methodCall(this, "isBeforeFirst", args);
        }

        boolean b = rowData.isBeforeFirst();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va韩国va欧美va| 一区二区三区在线免费播放| 91色在线porny| 老司机精品视频在线| 国产精品久久影院| 日韩三级视频在线看| 色94色欧美sute亚洲13| 韩国理伦片一区二区三区在线播放| 伊人色综合久久天天| 欧美国产日韩亚洲一区| 日韩欧美黄色影院| 欧洲av一区二区嗯嗯嗯啊| 国产91精品免费| 国内精品免费**视频| 偷拍一区二区三区四区| 亚洲日本丝袜连裤袜办公室| 国产午夜精品在线观看| 正在播放亚洲一区| 欧美系列亚洲系列| 色婷婷综合久久久中文字幕| 东方aⅴ免费观看久久av| 久久av老司机精品网站导航| 水野朝阳av一区二区三区| 亚洲免费观看高清完整版在线观看 | 国产91精品露脸国语对白| 日本va欧美va瓶| 亚洲成av人片一区二区| 有码一区二区三区| 亚洲欧洲精品成人久久奇米网| 久久久久久久综合| 精品国产乱码久久久久久老虎| 538在线一区二区精品国产| 在线观看免费视频综合| 91国偷自产一区二区三区观看 | 日韩精品一级二级| 一区二区三区国产豹纹内裤在线| 国产精品美女久久久久aⅴ | 亚洲精品视频免费观看| 亚洲三级在线观看| 一区二区在线观看免费视频播放| 首页国产欧美久久| 午夜影视日本亚洲欧洲精品| 午夜视黄欧洲亚洲| 午夜精品久久久久久久久| 午夜久久久影院| 日韩精品乱码免费| 麻豆国产精品777777在线| 美女一区二区久久| 国产真实乱子伦精品视频| 久久精品国产一区二区三| 激情图片小说一区| 成人午夜伦理影院| 色呦呦国产精品| 欧洲精品一区二区| 91精品在线免费| xfplay精品久久| 久久久精品日韩欧美| 国产精品传媒在线| 亚洲综合色噜噜狠狠| 日精品一区二区| 黄色小说综合网站| 成人av午夜影院| 在线看不卡av| 欧美日韩视频在线第一区| 亚洲蜜桃精久久久久久久| 亚洲美女视频在线观看| 亚洲综合区在线| 三级在线观看一区二区| 精品一区二区三区影院在线午夜 | 亚洲午夜免费视频| 日韩有码一区二区三区| 国产综合一区二区| 99视频热这里只有精品免费| 欧美久久久久久久久| 国产肉丝袜一区二区| 一区二区久久久久| 久久99九九99精品| 色综合天天在线| 日韩午夜在线影院| 亚洲色图欧美在线| 久久9热精品视频| 色综合中文字幕| 日韩精品中文字幕一区| 综合久久久久综合| 久久99国产精品尤物| 91福利精品第一导航| 精品国产欧美一区二区| 一区二区三区精品| 国产精品一区二区三区99| 色久优优欧美色久优优| 久久亚洲春色中文字幕久久久| 夜夜操天天操亚洲| 国产河南妇女毛片精品久久久| 欧美日韩亚州综合| 国产精品人人做人人爽人人添| 日本视频一区二区| 色综合天天综合网天天狠天天| 精品成人免费观看| 偷窥国产亚洲免费视频| 成人听书哪个软件好| 精品伦理精品一区| 亚洲va欧美va天堂v国产综合| 99久久婷婷国产综合精品| 精品福利一二区| 亚洲 欧美综合在线网络| 99久久久国产精品| 2023国产精华国产精品| 性感美女极品91精品| 色综合久久天天| 国产精品久久久久久久午夜片| 精品综合久久久久久8888| 欧美午夜精品一区二区蜜桃 | 亚洲精品成人精品456| 国产成人欧美日韩在线电影| 日韩三级免费观看| 午夜精品影院在线观看| 欧美在线免费观看视频| 亚洲欧美综合另类在线卡通| 国产成人日日夜夜| 久久久久高清精品| 国产曰批免费观看久久久| 日韩精品一区二区三区老鸭窝| 亚洲高清久久久| 在线看国产一区| 亚洲一区av在线| 欧美在线你懂得| 亚洲线精品一区二区三区| 色婷婷综合久久久久中文一区二区| 中文字幕一区二区三区av| 成人免费高清在线| 国产精品美女一区二区三区| 成人性生交大片免费看视频在线 | 欧美国产在线观看| 国v精品久久久网| 国产精品久久久久久久久免费相片 | 91精品国产综合久久国产大片| 亚洲国产成人va在线观看天堂 | 国产午夜精品久久| 国产麻豆视频一区| 欧美激情自拍偷拍| 成人免费视频一区| 国产精品久久久久一区| 99re热这里只有精品免费视频| 中文字幕一区二区三区色视频| 99久久综合狠狠综合久久| 亚洲蜜臀av乱码久久精品| 欧美在线观看视频一区二区| 亚洲国产精品精华液网站| 91久久精品网| 亚洲国产一区二区a毛片| 欧美日韩不卡在线| 久久国产尿小便嘘嘘尿| 久久综合九色综合97婷婷女人| 国产精品夜夜爽| 国产精品私人自拍| 色婷婷综合久久久久中文| 亚洲一区二区三区四区在线观看| 欧美日本一区二区在线观看| 秋霞成人午夜伦在线观看| 久久免费午夜影院| 99久久免费国产| 一区二区三区蜜桃| 欧美一区欧美二区| 国产精品一区二区久久不卡 | 国产女人aaa级久久久级| 99久久精品国产观看| 一区二区视频免费在线观看| 欧美日韩视频在线一区二区| 国内外成人在线| 亚洲三级小视频| 欧美日韩免费视频| 91女人视频在线观看| 亚洲综合丝袜美腿| 欧美日韩久久久一区| 久久99精品国产| 亚洲激情自拍偷拍| 日韩精品在线看片z| 色呦呦日韩精品| 国产在线精品一区二区不卡了| 中文字幕亚洲精品在线观看| 欧美久久免费观看| 狠狠色丁香婷婷综合| 一区二区三区蜜桃| 国产欧美日韩不卡免费| 欧美伊人久久大香线蕉综合69| 国内一区二区视频| 亚洲国产成人av| 中文字幕日韩欧美一区二区三区| 欧美日韩国产综合一区二区 | 91 com成人网| www.爱久久.com| 轻轻草成人在线| 一区二区在线观看免费| 久久亚洲精品国产精品紫薇| 欧美欧美午夜aⅴ在线观看| 成人污视频在线观看| 久草在线在线精品观看| 一区二区三区加勒比av| 国产精品成人在线观看| 精品久久久久久久久久久久久久久久久|