已備妥之陳述式的資料表值參數中繼資料
應用程式可以透過 SQLNumParams 和 SQLDescribeParam 取得已備妥之程序呼叫的中繼資料。如果是資料表值參數,DataTypePtr 會設定為 SQL_SS_TABLE。其他中繼資料可透過 SQL_CA_SS_TYPE_NAME、SQL_CA_SS_TYPE_CATALOG_NAME 和 SQL_CA_SS_TYPE_SCHEMA_NAME 的 SQLGetDescField 來取得。
SQL_CA_SS_TYPE_NAME、SQL_CA_SS_TYPE_CATALOG_NAME 和 SQL_CA_SS_TYPE_SCHEMA_NAME 可以搭配 SQLColumns 使用,以取得與資料表值參數有關聯之資料表類型的資料行中繼資料。在此案例中,SQL_SOPT_SS_NAME_SCOPE 必須設定為 SQL_SS_NAME_SCOPE_TABLE_TYPE,然後才能呼叫 SQLColumns。當應用程式完成資料表值參數資料行中繼資料的擷取時,SQL_SOPT_SS_NAME_SCOPE 應該設回預設值 SQL_SS_NAME_SCOPE_TABLE。
SQL_CA_SS_TYPE_NAME、SQL_CA_SS_TYPE_CATALOG_NAME 和 SQL_CA_SS_TYPE_SCHEMA_NAME 也可以搭配 CLR 使用者定義型別參數使用。
您無法針對不是預存程序呼叫的已備妥陳述式來取得資料表值參數中繼資料。如果您嘗試這樣做,應用程式會傳回 SQL_ERROR,其中包含 SQLSTATE 42000 和「語法錯誤或違規存取」訊息。