Aracılığıyla paylaş


SQLPutData

Şunlar için geçerlidir: Sql ServerAzure SQL VeritabanıAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Azure SQL Veritabanı

BIR SQL_LONGVARCHAR (metin), SQL_WLONGVARCHAR (ntext) veya SQL_LONGVARBINARY (resim) sütunu için 65.535 bayttan fazla veri (SQL Server sürüm 4.21a için) veya 400 KB veri (SQL Server sürüm 6.0 ve üzeri için) göndermek için SQLPutData kullanılırken aşağıdaki kısıtlamalar geçerlidir:

  • Başvuruda bulunılan parametre bir INSERT deyimindeki insert_value olabilir.

  • Başvuruda bulunılan parametre, UPDATE deyiminin SET yan tümcesinde bir ifadesi olabilir.

SQL Server çalıştıran bir sunucuya bloklar halinde veri sağlayan SQLPutData çağrılarının bir dizisini iptal etmek, sürüm 6.5 veya önceki sürümleri kullanırken sütunun değerinin kısmi olarak güncelleştirililmesine neden olur. metin, ntextveya SQLCancel çağrıldığında başvurulan resim sütunu ara yer tutucu değerine ayarlanır.

Not

SQL Server Yerel İstemci ODBC sürücüsü, SQL Server sürüm 6.5 ve önceki sürümlere bağlanmayı desteklemez.

Tanılama

SQLPutData için bir SQL Server Yerel İstemcisi özel SQLSTATE vardır:

SQLSTATE Hata Açıklama
22026 Dize verileri, uzunluk uyuşmazlığı Gönderilecek bayt cinsinden verilerin uzunluğu bir uygulama tarafından belirtildiyse( örneğin, n 0'dan büyük olduğu SQL_LEN_DATA_AT_EXEC(n) ile, SQLPutData aracılığıyla uygulama tarafından verilen toplam bayt sayısı belirtilen uzunlukla eşleşmelidir.

SQLPutData ve Table-Valued Parametreleri

SQLPutData, tablo değerli parametrelerle değişken satır bağlama kullanılırken bir uygulama tarafından kullanılır. StrLen_Or_Ind parametresi, sürücünün tablo değerli parametre verilerinin sonraki satırı veya satırları için veri toplamaya hazır olduğunu veya başka satır bulunmadığını gösterir:

  • 0'dan büyük bir değer, sonraki satır değerleri kümesinin kullanılabilir olduğunu gösterir.

  • 0 değeri, gönderilecek başka satır olmadığını gösterir.

  • 0'dan küçük herhangi bir değer bir hatadır ve SQLState HY090 ile bir tanılama kaydının günlüğe kaydedilmesine ve "Geçersiz dize veya arabellek uzunluğu" iletisiyle sonuçlanır.

DataPtr parametresi yoksayılır, ancak NULL olmayan bir değere ayarlanmalıdır. Daha fazla bilgi için Table-Valued Parametrelerinin ve Sütun DeğerlerininBağlama ve Veri Aktarımı bölümündeki Değişken TVP satır bağlama bölümüne bakın.

StrLen_Or_Ind SQL_DEFAULT_PARAM veya 0 ile SQL_PARAMSET_SIZE arasında bir sayı (yani SQLBindParameter'ın ColumnSize parametresi) dışında bir değere sahipse bu bir hatadır. Bu hata SQLPutData'nın SQL_ERROR döndürmesine neden olur: SQLSTATE=HY090, "Geçersiz dize veya arabellek uzunluğu".

Tablo değerli parametreler hakkında daha fazla bilgi için bkz. Table-Valued Parametreler (ODBC).

Gelişmiş Tarih ve Saat Özellikleri için SQLPutData Desteği

Tarih/saat türlerinin parametre değerleri, C'den SQLDönüştürmeleri'nde açıklandığı gibi dönüştürülür.

Daha fazla bilgi için bkz. Tarih ve Saat Geliştirmeleri (ODBC).

Büyük CLR UDT'leri için SQLPutData Desteği

SQLPutData büyük CLR kullanıcı tanımlı türleri (UDT) destekler. Daha fazla bilgi için bkz. Büyük CLR User-Defined Türleri (ODBC).

Ayrıca Bkz.

SQLPutData İşlevi
ODBC API Uygulama Ayrıntıları