Udostępnij za pośrednictwem


SQLDescribeParam

Do opisania parametry każdej instrukcja języka SQL, SQL Server Macierzysty sterownik ODBC klient kompiluje i wykonuje Transact-SQL Instrukcja SELECT po SQLDescribeParam nazywa się na uchwycie przygotowanych instrukcji ODBC. Sterownik używa instrukcja zestaw FMTONLY podczas wykonywania kwerendy.Metadane zestaw wyników określa właściwości parametrów w gotowa instrukcja.

Należy wziąć pod uwagę to ODBC instrukcja języka SQL:

INSERT INTO Shippers (ShipperID, CompanyName, Phone) VALUES (?, ?, ?)

W wywołaniu SQLDescribeParam, to instrukcja ODBC SQL powoduje wykonać następujących sterownika Transact-SQL instrukcje:

SET FMTONLY ON
SELECT ShipperID, CompanyName, Phone FROM Shippers
SET FMTONLY OFF

SQLDescribeParam Dlatego zwrócić kod błędu SQLExecute lub SQLExecDirect być może zwrócić.

Co więcej sterownik nie obsługuje telefonicznej SQLDescribeParam w następujących sytuacjach:

  • Po SQLExecDirect dla każdego Transact-SQL UPDATE lub DELETE sprawozdania zawierające klauzula FROM.

  • Dla każdej ODBC lub Transact-SQL Instrukcja zawierające parametrów w klauzula HAVING, lub w porównaniu do wyniku funkcja Suma.

  • Dla każdej ODBC lub Transact-SQL Instrukcja w zależności od podkwerenda zawierające parametry.

  • Dla instrukcji ODBC SQL zawierających parametr znaczników danych w obu wyrażeń porównania, tak jak lub wyliczone predykatu.

  • Dla każdego kwerendę, gdy jeden z parametrów jest parametr do funkcja.

  • Jeśli komentarze zostały (/ * * /) w Transact-SQL polecenie.

Przy przetwarzaniu partia Transact-SQL instrukcje, sterownik nie obsługuje wywoływania SQLDescribeParam dla parametru znaczników danych w instrukcja po pierwszej instrukcja w instancji.

When describing the parameters of prepared stored procedures, SQLDescribeParam uses the system stored procedure sp_sproc_columns to retrieve parameter characteristics.sp_sproc_columns can report data for stored procedures within the current user database.Umożliwia przygotowywanie Nazwa procedura przechowywana w pełni kwalifikowana SQLDescribeParam do wykonywania różnych baz danych. Na przykład systemowa procedura składowana sp_who można przygotować i wykonywane w każdej innej bazy danych jako:

SQLPrepare(hstmt, "{call sp_who(?)}", SQL_NTS);

Wykonywanie SQLDescribeParam po pomyślnie przygotowanie zwraca zestaw pusty wiersz po podłączeniu do każdej innej bazy danych, ale master. Powoduje, że tego samego połączenia, przygotowane w następujący sposób, SQLDescribeParam Aby pomyślnie, niezależnie od bieżącej baza danych użytkownika:

SQLPrepare(hstmt, "{call master..sp_who(?)}", SQL_NTS);

W przypadku typów danych dużą wartość wartość zwracana w DataTypePtr jest SQL_VARCHAR i SQL_VARBINARY SQL_NVARCHAR. Aby wskazać, że rozmiar parametru dużą wartość danych typu „ nieograniczony „ SQL Server Zestawy macierzystego sterownika ODBC klient ParameterSizePtr na 0. Rzeczywisty rozmiar wartości są zwracane dla standardowych varchar Parametry.

Uwaga

Jeżeli już powiązano parametru Maksymalny rozmiar dla parametrów SQL_VARCHAR i SQL_VARBINARY SQL_WVARCHAR, związanego rozmiar parametru jest zwracany, nie „ nieograniczona. „

Powiązać parametr wejściowy „ nieograniczony „ rozmiar danych na wykonanie musi być używany.Nie jest możliwe powiązać (nie istnieje metoda strumieniowego przesyłania danych z parametru wyjściowego, takich jak parametru wyjściowego rozmiaru „ nieograniczony „ SQLGetData wykonuje zestawów wyników).

Parametry wyjściowe muszą być powiązane z buforem i jeśli wartość jest zbyt duży rozmiar buforu jest wypełnione, a co SQL_SUCCESS_WITH_INFO wiadomości i jest zwracana wraz z "dane ciąg; prawostronne" ostrzeżenie.Następnie odrzuca dane, które zostały obcięte.

SQLDescribeParam i parametry Valued tabela

Aplikacja może pobrać informacje o parametrach wycenione tabela dla przygotowanych instrukcja z SQLDescribeParam. Aby uzyskać więcej informacji zobaczTabela Valued metadane parametr Prepared deklaracji.

Aby uzyskać więcej informacji na temat parametrów wycenione tabela ogólnie rzecz biorąc, zobacz Tabela Valued parametry (ODBC).

Obsługa SQLDescribeParam Data rozszerzony i czas funkcje

Wartości zwracane w przypadku typów data i godziny są w następujący sposób:

DataTypePtr

ParameterSizePtr

DecimalDigitsPtr

data_i_godzina

SQL_TYPE_TIMESTAMP

23

3

Smalldatetime

SQL_TYPE_TIMESTAMP

16

0

data

SQL_TYPE_DATE

10

0

godzina

SQL_SS_TIME2

8, 10..16

0..7

datetime2

SQL_TYPE_TIMESTAMP

19, 21..27

0..7

datetimeoffset

SQL_SS_TIMESTAMPOFFSET

26, 28..34

0..7

Aby uzyskać więcej informacji zobaczData / czas ulepszenia (ODBC).

Obsługa SQLDescribeParam duże UDTs CLR

SQLDescribeParam obsługuje dużą CLR typów zdefiniowanych przez użytkownika (UDTs).Aby uzyskać więcej informacji zobaczDuże CLR typy zdefiniowane przez użytkownika (ODBC).