Freigeben über


Table-Valued Parametermetadaten für Prepared Statements

Eine Anwendung kann Metadaten für einen vorbereiteten Prozeduraufruf über SQLNumParams und SQLDescribeParam abrufen. Bei Parametern mit Tabellenwerten wird DataTypePtr auf SQL_SS_TABLE festgelegt. Zusätzliche Metadaten sind über SQLGetDescField für SQL_CA_SS_TYPE_NAME, SQL_CA_SS_CATALOG_NAME und SQL_CA_SS_SCHEMA_NAME verfügbar.

SQL_CA_SS_TYPE_NAME, SQL_CA_SS_CATALOG_NAME und SQL_CA_SS_SCHEMA_NAME können mit SQLColumns verwendet werden, um Spaltenmetadaten für Tabellentypen abzurufen, die tabellenwertbezogenen Parametern zugeordnet sind. In diesem Fall muss SQL_SOPT_SS_NAME_SCOPE auf SQL_SS_NAME_SCOPE_TABLE_TYPE festgelegt werden, bevor SQLColumns aufgerufen wird. SQL_SOPT_SS_NAME_SCOPE sollte dann auf den Standardwert zurückgesetzt werden, SQL_SS_NAME_SCOPE_TABLE, wenn die Anwendung das Abrufen von Spaltenmetadaten mit Tabellenwertparametern abgeschlossen hat.

SQL_CA_SS_TYPE_NAME, SQL_CA_SS_CATALOG_NAME und SQL_CA_SS_SCHEMA_NAME können auch mit benutzerdefinierten CLR-Typparametern verwendet werden.

Metadaten mit Tabellenwerten für vorbereitete Anweisungen, die keine gespeicherten Prozeduraufrufe sind, können nicht abgerufen werden. Wenn Sie versuchen, dies zu tun, gibt die Anwendung SQL_ERROR mit SQLSTATE 42000 und der Meldung "Syntaxfehler oder Zugriffsverletzung" zurück.

Siehe auch

Tabellenwertparameter (ODBC)