/*


    ========== licence begin GPL
    Copyright (C) 2002-2003 SAP AG

    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.
    ========== licence end


*/

package com.sap.dbtech.jdbc;

import java.sql.*;
import com.sap.dbtech.jdbc.packet.*;
/**
 *
 */
class InternalStatementSapDB
    extends StatementSapDB
{
    private int currentSqlMode = com.sap.dbtech.vsp001.SqlMode.Internal_C;
    /**
     *
     */
    InternalStatementSapDB(ConnectionSapDB connection, int sqlMode) throws SQLException{
        super (connection);
        this.currentSqlMode = sqlMode;
    }    /**
    /**
     *
     */
    InternalStatementSapDB(ConnectionSapDB connection) throws SQLException{
        super (connection);
    }
    /**
     *
     */
    ReplyPacket sendCommand (RequestPacket requestPacket, String sqlCmd, int gcFlags)
    throws SQLException
    {
        ReplyPacket replyPacket;
        int oldMode = requestPacket.switchSqlMode (this.currentSqlMode);

        requestPacket.initDbsCommand (this.connection.autocommit, sqlCmd, this.resultSetType);
        requestPacket.addCursorPart(this.cursorName);
        try {
            replyPacket = this.connection.execute (requestPacket, this, gcFlags);
        }
        finally {
            requestPacket.switchSqlMode (oldMode);
        }
        return replyPacket;
    }

}
