SQLDescribeParam
Herhangi parametrelerini tanımlamak için SQL deyim, SQL Server yerel istemci odbc sürücüsü oluşturur ve yürüten bir Transact-SQL deyim, SQLDescribeParam olarak adlandırılan bir hazırlanan odbc deyim tanıtıcı.set fmtonly sürücüsünü kullanan deyim sorgu yürütülürken.Meta verilerini sonuç küme hazırlanmış deyim parametrelerinde özelliklerini belirler.
Bu odbc SQL deyim göz önünde bulundurun:
INSERT INTO Shippers (ShipperID, CompanyName, Phone) VALUES (?, ?, ?)
Yapılan çağrı sırasında SQLDescribeParam, bu odbc SQL deyim neden olan sürücüyü aşağıdaki yürütmek Transact-SQL deyimleri:
SET FMTONLY ON
SELECT ShipperID, CompanyName, Phone FROM Shippers
SET FMTONLY OFF
SQLDescribeParamBu nedenle, herhangi bir hata kodu, döndürebilir SQLExecute veya SQLExecDirect olabilir dönüş.
Daha da ötesi sürücü arama desteklemiyor SQLDescribeParam aşağıdaki durumlarda:
Sonra SQLExecDirect herhangi Transact-SQL update veya delete deyimleri içeren from yan tümce tümce tümce.
Hiçbir odbc için ya da Transact-SQL deyim bir HAVING yan tümce tümce tümce içinde bir parametre içeren veya karşılaştırması sonucunu bir toplam işlev.
Hiçbir odbc için ya da Transact-SQL deyim bağlı alt sorgu içeren parametreleri.
Bir karşılaştırma her iki ifade de parametre imleyicileri gibi içeren veya yüklemi quantified odbc sql deyimleri için.
İçin herhangi bir işlev için bir parametre olduğu parametrelerden sorgular.
Yorum olduğunda (/ * * /), Transact-SQL komut.
toplu iş iş işleme sırasında Transact-SQL deyims, sürücü de desteklemez arayan SQLDescribeParam için parametre imleyicileri deyimilk s deyim toplu iş iş.
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.Tam bir saklı yordam adı hazırlanıyor verir SQLDescribeParam yürütmek arasında veritabanları.Örneğin, sistem saklı yordamı sp_who hazırlanması ve tüm veritabanında yürütülen:
SQLPrepare(hstmt, "{call sp_who(?)}", SQL_NTS);
Yürütme SQLDescribeParam sonra başarılı hazırlık herhangi bir veritabanına bağlı bir boş satır küme döndürür ama master.Aynı çağrı nedenleri şu şekilde hazırlanan SQLDescribeParam ne olursa olsun geçerli kullanıcı veritabanı işleminin başarılı olması için:
SQLPrepare(hstmt, "{call master..sp_who(?)}", SQL_NTS);
İçinde büyük değer veri türleri için döndürülen değer DataTypePtr , sql_varchar, SQL_VARBINARY veya sql_nvarchar.Büyük değer veri türü parametresinin boyutu "sınırsız" olduğunu belirtmek için SQL Server yerel istemci odbc sürücüsü ayarlar ParameterSizePtr 0.Gerçek boyut değerleri için standart döndürülen varchar parametreleri.
Not
Parametre zaten sql_varchar, SQL_VARBINARY veya sql_wvarchar parametreler için en büyük boyutu olan bağlandı, ilişkili parametresi boyutudur dönen, değil "sınırsız."
Bağlamak için bir "sınırsız" Boyut giriş parametresi, yürütme sırasında veri kullanılması gerekir.Mümkün değil "sınırsız" bir bağlama Boyut parametresi çıkış (gibi bir çıkış parametresi veri akışı için bir yöntem yoktur u sonuç kümeleri için yapar).
Çıkış parametreleri için arabellek bağlı olmalıdır, dolu ve SQL_SUCCESS_WITH_INFO arabellek çok büyük değerdir, ileti ve "dize veri; birlikte verilir "sağdan kesilme Uyarı.Kesilmiş veriler daha sonra atılır.
SQLDescribeParam ve tablo değerli parametreleri
Bir uygulama ile hazırlanmış bir deyim için tablo değerli parametre bilgilerini alabilir SQLDescribeParam.Daha fazla bilgi için bkz: Tablo değerli parametre meta veri Prepared deyimleri için.
Genel olarak, tablo değerli parametreleri hakkında daha fazla bilgi için bakın Tablo değerli parametreleri (odbc).
Gelişmiş tarih ve saat özellikleri için SQLDescribeParam desteği
Tarih/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 |
tarih |
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).