Partager via


Méthode unwrap (SQLServerCallableStatement)

Télécharger le pilote JDBC

Retourne un objet qui implémente l’interface spécifiée, afin d’autoriser l’accès aux méthodes propres au Pilote Microsoft JDBC pour SQL Server.

Syntaxe

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

Paramètres

iface

Classe de type T définissant une interface.

Valeur de retour

Objet qui implémente l'interface spécifiée.

Exceptions

SQLServerException

Notes

La méthode unwrap est définie par l’interface java.sql.Wrapper, introduite dans les spécifications de JDBC 4.0.

Les applications devront peut-être accéder à des extensions de l’API JDBC propres au Pilote Microsoft JDBC pour SQL Server. La méthode unwrap prend en charge la désencapsulation dans les classes publiques étendues par cet objet, si les classes exposent des extensions de fournisseur.

SQLServerCallableStatement implémente ISQLServerPreparedStatement, une extension de ISQLServerStatement. Lorsque cette méthode est appelée, l’objet se désencapsule dans les classes suivantes : SQLServerStatement, SQLServerPreparedStatement et SQLServerCallableStatement.

Pour plus d’informations, consultez Wrappers et interfaces.

L’exemple de code suivant indique comment utiliser les méthodes isWrapperFor et unwrap pour vérifier les extensions du pilote et appeler les méthodes spécifiques des fournisseurs, comme setResponseBuffering et 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();  
  }  
}   

Voir aussi

Méthode isWrapperFor (SQLServerCallableStatement)
Membres de SQLServerCallableStatement
Classe SQLServerCallableStatement