SQLDescribeParam
Do opisania parametry żadnych instrukcja języka SQL SQL Server sterownik ODBC macierzystym klienta tworzy i wykonuje Transact-SQL instrukcji SELECT po SQLDescribeParam jest wywoływana w przygotowanej ODBC instrukcji uchwyt.Sterownik używa instrukcja FMTONLY USTAWIĆ podczas wykonywania kwerendy.Metadane zestaw wyników określa cechy parametrów w instrukcja przygotowany.
Należy wziąć pod uwagę ten ODBC instrukcja języka SQL:
INSERT INTO Shippers (ShipperID, CompanyName, Phone) VALUES (?, ?, ?)
Na wywołanie SQLDescribeParam, to ODBC instrukcja języka SQL powoduje wykonanie następujących sterownika Transact-SQL sprawozdania:
SET FMTONLY ON
SELECT ShipperID, CompanyName, Phone FROM Shippers
SET FMTONLY OFF
SQLDescribeParammożna dlatego zwrócić kod błędu, SQLExecute lub SQLExecDirect może zwrotu.
Ponadto sterownik nie obsługuje telefonicznej SQLDescribeParam w następujących sytuacjach:
Po SQLExecDirect dla każdego Transact-SQL zaktualizować lub usunąć sprawozdania zawierające klauzula FROM.
Dla dowolnego ODBC lub Transact-SQL instrukcja zawierającego parametr w klauzula HAVING lub w porównaniu do wyniku funkcja Suma.
Dla dowolnego ODBC lub Transact-SQL instrukcja w zależności od podzapytanie zawierających parametry.
Dla instrukcji ODBC SQL zawierającego parametr znaczników w oba wyrażenia porównania, jak lub określić ilościowo predykatu.
Dla dowolnej kwerendy, gdzie jeden z parametrów jest parametr do funkcja.
Gdy istnieją komentarze (/ * * /) w Transact-SQL polecenia.
Podczas partia z Transact-SQL instrukcja, sterownik nie obsługuje wywoływania SQLDescribeParam dla parametru znaczników w sprawozdaniu po pierwszej instrukcja w partia.
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 procedura składowana w pełni kwalifikowaną nazwę SQLDescribeParam do wykonać całej bazy danych.Na przykład systemowa procedura składowana sp_who mogą być przygotowane i wykonywane w dowolnej bazy danych jako:
SQLPrepare(hstmt, "{call sp_who(?)}", SQL_NTS);
Wykonywanie SQLDescribeParam po pomyślnie przygotowania zwraca zestaw pusty wiersz po podłączeniu do dowolnej bazy danych, ale master.Wywołanie tej samej przygotowany w następujący sposób, przyczyny SQLDescribeParam się powiodła, niezależnie od bieżącej baza danych użytkownika:
SQLPrepare(hstmt, "{call master..sp_who(?)}", SQL_NTS);
Dla typów danych dużą wartość, wartość zwracana w DataTypePtr SQL_VARCHAR, SQL_VARBINARY, lub SQL_NVARCHAR.Rozmiar dużego wartość parametru typu danych jest "nieograniczony" SQL Server Ustawia sterownik ODBC macierzystym klienta ParameterSizePtr 0.Zwracane są wartości rzeczywistego rozmiaru standardu varchar Parametry.
Ostrzeżenie
Jeśli parametr jest już powiązane z maksymalny rozmiar dla parametrów SQL_VARCHAR, SQL_VARBINARY lub SQL_WVARCHAR, związanego rozmiar parametru jest zwrócony, nie "nieograniczoną."
Aby powiązać "nieograniczony" Parametr wejściowy rozmiar danych na wykonanie musi być używany.Nie jest możliwe powiązanie "nieograniczony" Parametr wyjściowy rozmiar (nie ma metoda przesyłania strumieniowego danych z parametrem wyjściowym, jak Procedura SQLGetData dla zestawów wyników).
Dla parametrów wyjściowych buforu muszą być powiązane i jeśli wartość jest za duża, bufor jest wypełniony i wartość SQL_SUCCESS_WITH_INFO wiadomości i zwrócone wraz z "ciąg danych; obcięcie z prawej" ostrzeżenie.Następnie jest odrzucany dane zostały obcięte.
Parametry oródwierszową i SQLDescribeParam
Aplikacja może pobrać tabela-wycenione parametry dla przygotowanych instrukcja z SQLDescribeParam.Aby uzyskać więcej informacji, zobacz Oródwierszową metadane parametrów dla przygotowanych instrukcji.
Więcej informacji o tabela-wyceniane parametrów, zobacz Parametry oródwierszową (ODBC).
Obsługa SQLDescribeParam Enhanced Data i czas funkcje
Zwracane wartości data /czas są następujące typy:
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, zobacz Data/Godzina ulepszenia (ODBC).
Obsługa dużych CLR UDTs SQLDescribeParam
SQLDescribeParam obsługuje duże CLR zdefiniowane przez użytkownika typów (UDTs).Aby uzyskać więcej informacji, zobacz Duże CLR typów zdefiniowanych przez użytkownika (ODBC).
Zobacz także