Sdílet prostřednictvím


unwrap – metoda (SQLServerCallableStatement)

Stáhnout ovladač JDBC

Vrátí objekt, který implementuje zadané rozhraní umožňující přístup k ovladači Microsoft JDBC pro metody specifické pro SQL Server.

Syntaxe

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

Parametry

iface

Třída typu T definující rozhraní.

Návratová hodnota

Objekt, který implementuje zadané rozhraní.

Výjimky

sqlServerException

Poznámky

Metoda unwrap je definována rozhraním java.sql.Wrapper, které je zavedeno v specifikace JDBC 4.0.

Aplikace můžou potřebovat přístup k rozšířením rozhraní JDBC API, které jsou specifické pro ovladač Microsoft JDBC pro SQL Server. Unwrap metoda podporuje rozbalení na veřejné třídy, které tento objekt rozšiřuje, pokud třídy zpřístupňují rozšíření dodavatele.

SQLServerCallableStatement implementuje ISQLServerPreparedStatement, který je rozšířen z ISQLServerStatement. Při volání této metody objekt rozbalí následující třídy: SQLServerStatement, SQLServerPreparedStatement a SQLServerCallableStatement.

Další informace naleznete v tématu Obálky a rozhraní.

Následující příklad kódu ukazuje, jak použít isWrapperFor a unwrap metody pro kontrolu rozšíření ovladače a vyvolat metody specifické pro dodavatele, jako je setResponseBuffering a 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();  
  }  
}   

Viz také

isWrapperFor – metoda (SQLServerCallableStatement)
SQLServerCallableStatement – členy
SQLServerCallableStatement – třída