Dela via


unwrap-metoden (SQLServerCallableStatement)

Ladda ned JDBC-drivrutin

Returnerar ett objekt som implementerar det angivna gränssnittet för att tillåta åtkomst till Microsoft JDBC-drivrutinen för SQL Server-specifika metoder.

Syntax

  
public <T> T unwrap(Class<T> iface)  

Parameterar

iface

En klass av typen T som definierar ett gränssnitt.

Returvärde

Ett objekt som implementerar det angivna gränssnittet.

Undantag

SQLServerException

Anmärkningar

Metoden unwrap definieras av gränssnittet java.sql.Wrapper, som introduceras i JDBC 4.0 Spec.

Program kan behöva komma åt tillägg till JDBC-API:et som är specifika för Microsoft JDBC-drivrutinen för SQL Server. Metoden unwrap stöder avskrivning till offentliga klasser som objektet utökar, om klasserna exponerar leverantörstillägg.

SQLServerCallableStatement implementerar ISQLServerPreparedStatement, som utökas från ISQLServerStatement. När den här metoden anropas packas objektet upp till följande klasser: SQLServerStatement, SQLServerPreparedStatement och SQLServerCallableStatement.

Mer information finns i Omslutningar och gränssnitt.

Följande kodexempel visar hur du använder metoderna isWrapperFor och avskrivning för att kontrollera drivrutinstilläggen och anropa de leverantörsspecifika metoderna, till exempel setResponseBuffering och getResponseBuffering.

public static void executeStoredProcedure(Connection con) {  
   try {  
    CallableStatement cstmt =   
       con.prepareCall("{call dbo.stored_proc_name(?, ?)}");  
  
    // The recommended way to access the JDBC   
    // Driver-specific methods is to use the JDBC 4.0 Wrapper   
    // functionality.   
    // The following code statements demonstrates how to use the   
    // isWrapperFor and unwrap methods  
    // to access the driver-specific response buffering methods.  
  
    if (cstmt.isWrapperFor(  
      com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.class)) {  
     // The CallableStatement object can unwrap to   
     // SQLServerCallableStatement.  
     SQLServerCallableStatement SQLcstmt =   
     cstmt.unwrap(  
        com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.class);  
     SQLcstmt.setResponseBuffering("adaptive");  
     System.out.println("Response buffering mode has been set to " +  
         SQLcstmt.getResponseBuffering());  
     }  
  
    if (cstmt.isWrapperFor(  
      com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.class)) {  
      // The CallableStatement object can unwrap to   
      // SQLServerPreparedStatement.                    
      SQLServerPreparedStatement SQLpstmt =   
       cstmt.unwrap(  
       com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.class);  
      SQLpstmt.setResponseBuffering("adaptive");  
      System.out.println("Response buffering mode has been set to " +  
          SQLpstmt.getResponseBuffering());  
    }  
    if (cstmt.isWrapperFor(  
      com.microsoft.sqlserver.jdbc.SQLServerStatement.class)) {  
  
      // The CallableStatement object can unwrap to SQLServerStatement.   
      SQLServerStatement SQLstmt =   
        cstmt.unwrap(  
        com.microsoft.sqlserver.jdbc.SQLServerStatement.class);  
      SQLstmt.setResponseBuffering("adaptive");  
      System.out.println("Response buffering mode has been set to " +  
      SQLstmt.getResponseBuffering());  
    }  
  }  
  catch (Exception e) {  
     e.printStackTrace();  
  }  
}   

Se även

isWrapperFor-metoden (SQLServerCallableStatement)
SQLServerCallableStatement-medlemmar
SQLServerCallableStatement-klass