Share via


SQLDescribeParam

Herhangi bir sql deyimi parametreler tanımlamak için SQL Serveryerel istemci odbc sürücüsü kurar ve çalıştırır bir Transact-SQLselect deyimi ne zaman SQLDescribeParamhazırlanan odbc deyimi tutamacı denir. Sonuç kümesi meta hazırlanmış deyimi parametrelerinde özelliklerini belirler.  SQLDescribeParam, herhangi bir hata kodunu döndürebilir SQLExecuteya SQLExecDirectdöndürebilir.

Gelişmeler veritabanı motoru ile başlayan SQL Server 2012izin SQLDescribeParamdaha doğru açıklaması beklenen sonuçları elde etmek için. Bu daha doğru sonuçlar tarafından döndürülen değerler farklı olabilir SQLDescribeParamönceki sürümlerinde SQL Server. Daha fazla bilgi için, bkz. Meta veri bulma.

Ayrıca yeni SQL Server 2012, ParameterSizePtrŞimdi tanımlanan karakter sütunu veya ifade ilgili parametre işaretçisi boyutunu tanımı hizalar bir değer döndüren odbc belirtimi. Önceki sürümlerinde SQL ServerNative Client, ParameterSizePtrkarşılık gelen değeri olabilir SQL_DESC_OCTET_LENGTHtürü ya da o için sağlanan bir alakasız sütun boyutu değeri SQLBindParameterbir türü için hangi değeri göz ardı edilmemelidir (SQL_INTEGER, örneğin).

Sürücü arama desteklemez SQLDescribeParamAşağıdaki durumlarda:

  • Sonra SQLExecDirectiçin Transact-SQLupdate veya delete deyimleri from yan tümcesi içeren.

  • Herhangi bir ODBC veya Transact-SQLHAVING yan tümcesinde parametre içeren veya TOPLA işlevini sonucuna göre açıklama.

  • Herhangi bir ODBC veya Transact-SQLdeyimi parametreler içeren bir alt sorguyu bağlı.

  • Bir karşılaştırma iki ifadeler parametre imleyicileri gibi içeren veya yüklemi quantified odbc sql deyimleri için.

  • İçin herhangi bir işleve parametre olduğu parametrelerden sorgular.

  • Ne zaman yorum var (/ * * /) in Transact-SQLkomut.

Toplu işleme sırasında Transact-SQLdeyimleri, sürücü de arama desteklemez SQLDescribeParamiçin parametre imleyicileri deyimleri toplu iş içinde ilk deyim sonra.

Saklı yordamlar, hazırlanmış parametrelerini açıklayan SQLDescribeParamsistem saklı yordamını kullanır sp_sproc_columns parametresi özelliklerini almak için. sp_sproc_columnsgeçerli kullanıcı veritabanı içinde saklı yordamlar için veri bildirebilirsiniz. Tam saklı yordam adı hazırlanıyor verir SQLDescribeParamveritabanları arasında yürütülecek. Örneğin, sistem saklı yordamı sp_who hazırlanan ve yürütülen herhangi bir veritabanında:

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

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

Yürütme SQLDescribeParamsonra başarılı hazırlık herhangi bir veritabanına bağlandığında bir boş satır kümesi döndürür ama master. Aynı çağrı, hazırlanan aşağıdaki gibi nedenler SQLDescribeParamgeçerli kullanıcı veritabanı bakılmaksızın başarılı olmak için:

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

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

Büyük değer veri türleri için döndürülen değer içinde DataTypePtrsql_varchar, SQL_VARBINARY veya sql_nvarchar. Büyük bir değer veri türü parametresinin boyutu "sınırsız" olduğunu belirtmek için SQL Serveryerel istemci odbc sürücüsü ayarlar ParameterSizePtr0. Gerçek boyut değerleri için standart döndürülür varcharparametreleri.

[!NOT]

Parametre zaten sql_varchar, SQL_VARBINARY veya sql_wvarchar parametreler için maksimum boyutu ile ilişkili, ilişkili parametre büyüklüğünde dönen, değil "sınırsız."

Bağlamak için bir "sınırsız" Boyut Giriş parametresi, veri yürütme kullanılmalıdır. Mümkün değil "sınırsız" bir bağlama Boyut çıkış parametresi (böyle bir çıkış parametresi veri akışı için bir yöntem yoktur SQLGetData sonuç kümeleri için yapar).

Çıkış parametreleri, bir arabellek bağlanmalıdır ve değeri çok büyük, dolu ve SQL_SUCCESS_WITH_INFO arabellek olup olmadığını ve mesaj "string veri; birlikte verilir sağdan kesilme" Uyarı. Kesilmiş veriler daha sonra atılır.

SQLDescribeParam ve tablo Valued Parametreler

Bir uygulama için bir hazır deyimi ile tablo valued parametre bilgi alabilirsiniz SQLDescribeParam. Daha fazla bilgi için, bkz. Tablo Valued parametre meta veri Prepared deyimleri için.

Genel olarak, tablo değerli parametreleri hakkında daha fazla bilgi için bkz Tablo Valued Parametreler (odbc).

Gelişmiş tarih ve saat özellikleri için SQLDescribeParam desteği

Tarih ve saat türleri için döndürülen değerler aşağıdaki gibidir:

DataTypePtr

ParameterSizePtr

DecimalDigitsPtr

datetime

SQL_TYPE_TIMESTAMP

23

3

smalldatetime

SQL_TYPE_TIMESTAMP

16

0

tarihi

SQL_TYPE_DATE

10

0

Saat

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

Daha fazla bilgi için, bkz. Tarih/Saat (odbc) geliştirmeleri.

Büyük clr UDTs için SQLDescribeParam desteği

SQLDescribeParam büyük clr kullanıcı tanımlı türler (UDTs) destekler. Daha fazla bilgi için, bkz. Büyük clr kullanıcı tanımlı türler (odbc).

Ayrıca bkz.

Kavramlar

odbc API uygulama ayrıntıları

Diğer Kaynaklar

SQLDescribeParam işlev