Sdílet prostřednictvím


Použití metadat parametrů

Stáhnout ovladač JDBC

Pro dotazování o parametrech, které obsahují objekty SQLServerPreparedStatement nebo SQLServerCallableStatement, implementuje Microsoft JDBC Driver pro SQL Server třídu SQLServerParameterMetaData. Tato třída obsahuje mnoho polí a metod, které vracejí informace ve formě jedné hodnoty.

Chcete-li vytvořit SQLServerParameterMetaData objektu, můžete použít getParameterMetaData metody SQLServerPreparedStatement a SQLServerCallableStatement třídy.

V následujícím příkladu je otevřené připojení k ukázkové databázi AdventureWorks2025 předáno funkci, metoda getParameterMetaData třídy SQLServerCallableStatement je použita k vrácení objektu SQLServerParameterMetaData, a pak se různé metody objektu SQLServerParameterMetaData používají k zobrazení informací o typu a režimu parametrů, které jsou obsaženy v uložené proceduře HumanResources.uspUpdateEmployeeHireInfo.

public static void getParameterMetaData(Connection con) {
    try(CallableStatement cstmt = con.prepareCall("{call HumanResources.uspUpdateEmployeeHireInfo(?, ?, ?, ?, ?)}");) {
        ParameterMetaData pmd = cstmt.getParameterMetaData();
        int count = pmd.getParameterCount();
        for (int i = 1; i <= count; i++) {
            System.out.println("TYPE: " + pmd.getParameterTypeName(i) + " MODE: " + pmd.getParameterMode(i));
        }
    }
    // Handle any errors that may have occurred.
    catch (SQLException e) {
        e.printStackTrace();
    }
}

Poznámka:

Při použití třídy SQLServerParameterMetaData s připravenými příkazy existují určitá omezení.

S ovladačem Microsoft JDBC 6.0 (nebo vyšší) pro SQL Server: Pokud používáte SQL Server 2008 nebo 2008 R2, ovladač JDBC podporuje příkazy SELECT, DELETE, INSERT a UPDATE, pokud tyto příkazy neobsahují poddotazy nebo spojení.

Dotazy MERGE se také nepodporují pro třídu SQLServerParameterMetaData při použití SQL Serveru 2008 nebo 2008 R2. Pro SQL Server 2012 a vyšší verze jsou podporována metadata parametrů se složitými dotazy.

Načtení metadat parametrů pro šifrované sloupce se nepodporuje. S ovladačem Microsoft JDBC 4.1 nebo 4.2 pro SQL Server: Ovladač JDBC podporuje příkazy SELECT, DELETE, INSERT a UPDATE, pokud tyto příkazy neobsahují poddotazy nebo spojení. Dotazy MERGE také nejsou podporovány třídou SQLServerParameterMetaData.