SQLSetStmtAttr

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server Native Client ODBC sürücüsü, karışık (tuş seti/dinamik) imleç modelini desteklemez. Anahtar seti boyutunu SQL_ATTR_KEYSET_SIZE kullanarak ayarlama girişimleri, değer kümesi 0'a eşit değilse başarısız olur.

Uygulama, bir SQLFetch veya SQLFetchScroll fonksiyon çağrısında döndürülen satır sayısını belirtmek için tüm ifadelerde SQL_ATTR_ROW_ARRAY_SIZE ayarlar. Sunucu imleci belirten ifadelerde, sürücü SQL_ATTR_ROW_ARRAY_SIZE kullanarak sunucunun imlecten gelen bir getirme isteğini karşılamak için oluşturduğu satır bloğunun boyutunu belirler. Dinamik bir imlecin blok boyutu içinde, işlem izolasyon seviyesi taahhüt edilen işlemlerin tekrarlanabilir okunmasını sağlamak için yeterliyse, satır üyeliği ve sıralama sabittir. İmleç, bu değerle gösterilen blok dışında tamamen dinamiktir. Sunucu imleci bloğu boyutu tamamen dinamiktir ve getirme işleminde herhangi bir noktada değiştirilebilir.

SQLSetStmtAttr and Table-Valued Parameters

SQLSetStmtAttr, tablo değerli parametre sütunları için tanımlayıcı alanlarına erişmeden önce uygulama parametre tanımlayıcısında (APD) SQL_SOPT_SS_PARAM_FOCUS ayarlamak için kullanılabilir.

Tablo değerli bir parametre olmayan bir parametrenin sırasına SQL_SOPT_SS_PARAM_FOCUS ayarlamaya çalışılırsa, SQLSetStmtAttr SQL_ERROR döndürür ve SQLSTATE = HY024 ile "Geçersiz özellik değeri" mesajı ile bir tanı kaydı oluşturulur. SQL_SOPT_SS_PARAM_FOCUS SQL_ERROR geri döndüğünde değişmez.

SQL_SOPT_SS_PARAM_FOCUS 0'a ayarladığınızda, parametreler için tanımlayıcı kayıtlara erişimi geri kazandırır.

SQLSetStmtAttr ayrıca SQL_SOPT_SS_NAME_SCOPE ayarlamak için kullanılabilir. Daha fazla bilgi için, bu konunun ilerleyen bölümlerinde bulunan SQL_SOPT_SS_NAME_SCOPE bölümüne bakınız.

Daha fazla bilgi için Table-Valued Hazırlanmış Cümleler için Parametre Metadata'sına bakınız.

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

SQLSetStmtAttr Support for Sparse Columns

SQLSetStmtAttr SQL_SOPT_SS_NAME_SCOPE ayarlamak için kullanılabilir. Daha fazla bilgi için, bu konunun ilerleyen bölümlerinde bulunan SQL_SOPT_SS_NAME_SCOPE bölümüne bakınız. Seyrek sütunlar hakkında daha fazla bilgi için Seyrek Sütunlar Desteği (ODBC) sayfasına bakınız.

Beyan Öznitelikleri

SQL Server Native Client ODBC sürücüsü ayrıca aşağıdaki sürücüye özgü ifade özelliklerini destekler.

SQL_SOPT_SS_CURSOR_OPTIONS

SQL_SOPT_SS_CURSOR özniteliği, sürücünün imlecimlerde sürücüye özgü performans seçeneklerini kullanıp kullanmayacağını belirtir. Bu seçenekler ayarlandığında SQLGetData izin verilmez. Varsayılan ayar SQL_CO_OFF. ValuePtr değeri SQLLEN türündendir.

ValuePtr değeri Description
SQL_CO_OFF Default. Hızlı ileri ile, sadece okunan imleçleri ve otomatik getirme özelliğini devre dışı bırakır, yalnızca yönlendirile, yalnızca okunur imleçlerinde SQLGetData'yı etkinleştirir. SQL_SOPT_SS_CURSOR_OPTIONS SQL_CO_OFF olarak ayarlandığında imleç tipi değişmez. Yani, sadece ileri ileri imleç sadece ileri ileri imleci olarak kalacak. İmleç türünü değiştirmek için uygulama artık SQLSetStmtAttr/SQL_ATTR_CURSOR_TYPE kullanarak farklı bir imleç tipi ayarlamalıdır.
SQL_CO_FFO Hızlı ileri ile, sadece okunan imlekatleri etkinleştirir, yalnızca ileri ile, sadece okunur imleçlerinde SQLGetData'yı devre dışı bırakır.
SQL_CO_AF Herhangi bir imleç türünde otomatik getirme seçeneğini etkinleştiriyor. Bu seçenek bir ifade tutamacı için ayarlandığında, SQLExecute veya SQLExecDirect örtük bir SQLFetchScroll (SQL_FIRST) oluşturur. İmleç açılır ve ilk satır partisi tek bir gidiş-dönüşle sunucuya geri döner.
SQL_CO_FFO_AF Otomatik getirme seçeneğiyle sadece ileri ileri imleçleri etkinleştiriyor. Bu, hem SQL_CO_AF hem de SQL_CO_FFO belirtilmişse aynıdır.

Bu seçenekler ayarlandığında, sunucu son satırın alındığını algıladığında imleci otomatik olarak kapatır. Uygulama yine de SQLFreeStmt (SQL_CLOSE) veya SQLCloseCursor'u çağırmalıdır, ancak sürücünün kapanış bildirimini sunucuya göndermek zorunda değildir.

Seçim listesinde metin, ntext veya resim sütunu varsa, sadece ileri ileri imleç dinamik bir imlete dönüştürülür ve SQLGetData kullanılabilir.

SQL_SOPT_SS_DEFER_PREPARE

SQL_SOPT_SS_DEFER_PREPARE özniteliği, ifadenin hemen hazırlanıp hazırlanmayacağını veya SQLExecute, SQLDescribeCol veya SQLDescribeParam çalıştırılana kadar ertelenip ertelemediğini belirler. SQL Server 7.0 ve daha önceki sürümlerde bu özellik göz ardı edilir (ertelenmiş hazırlık yoktur). ValuePtr değeri SQLLEN türündendir.

ValuePtr değeri Description
SQL_DP_ON Default. SQLPrepare Fonksiyonu çağrıldıktan sonra, ifade hazırlama işlemi SQLExecute çağrılana veya metaproperty işlemi (SQLDescribeCol veya SQLDescribeParam) çalıştırılana kadar ertelenir.
SQL_DP_OFF Bu ifade, SQLPrepare çalıştırıldıktan sonra hazırlanır.

SQL_SOPT_SS_REGIONALIZE

SQL_SOPT_SS_REGIONALIZE özniteliği, ifade düzeyinde veri dönüşümünü belirlemek için kullanılır. Bu öznitelik, sürücünün tarih, saat ve para birimi değerlerini karakter dizelerine dönüştürürken istemci yerel ayarına saygı göstermesine neden olur. Dönüşüm SQL Server'ın yerel veri tiplerinden sadece karakter dizilerine yapılır.

ValuePtr değeri SQLLEN türündendir.

ValuePtr değeri Description
SQL_RE_OFF Default. Sürücü, tarih, saat ve para birimi verilerini istemci yerel ayarını kullanarak karakter dizisi verisine dönüştürmez.
SQL_RE_ON Sürücü, tarih, saat ve para birimi verilerini karakter dizisi verisine dönüştürürken istemci yerel ayarını kullanır.

Bölgesel dönüşüm ayarları para birimi, sayısal, tarih ve saat veri türlerine uygulanır. Dönüştürme ayarı, yalnızca para birimi, sayısal, tarih veya zaman değerleri karakter dizelerine dönüştürüldüğünde çıktı dönüşümleri için geçerlidir.

Note

SQL_SOPT_SS_REGIONALIZE ifadesi seçeneği açıkken, sürücü mevcut kullanıcı için yerel kayıt ayarlarını kullanır. Sürücü, örneğin SetThreadLocale çağırarak ayarlıyorsa, mevcut iş parçacığının konumunu onurlandırmaz.

Bir veri kaynağının bölgesel davranışını değiştirmek uygulama arızasına neden olabilir. Tarih dizelerini ayrıştıran ve tarih dizelerinin ODBC tarafından tanımlandığı şekilde görünmesini bekleyen bir uygulama, bu değerin değiştirilmesiyle olumsuz etkilenebilir.

SQL_SOPT_SS_TEXTPTR_LOGGING

SQL_SOPT_SS_TEXTPTR_LOGGING özniteliği, metin veya görüntü verisini içeren sütunlardaki işlemlerin kaydını açar. ValuePtr değeri SQLLEN türündendir.

ValuePtr değeri Description
SQL_TL_OFF Metin ve görüntü verisi üzerinde yapılan işlemlerin kaydını devre dışı bırakır.
SQL_TL_ON Default. Metin ve görüntü verileri üzerinde yapılan işlemlerin kaydını sağlar.

SQL_SOPT_SS_HIDDEN_COLUMNS

SQL_SOPT_SS_HIDDEN_COLUMNS özniteliği, sonuç kümesinde SQL Server SELECT FOR BROWSE ifadesinde gizlenmiş sütunları ortaya çıkarır. Sürücü bu sütunları varsayılan olarak göstermez. ValuePtr değeri SQLLEN türündendir.

ValuePtr değeri Description
SQL_HC_OFF Default. FOR BROWSE sütunları sonuç kümesinden gizlidir.
SQL_HC_ON Sütunlara GÖZ ATMAK için açığa çıkarır.

SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT

SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT özniteliği, sorgu bildirimi talebi için mesaj metnini döndürür.

SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS

SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS özniteliği, sorgu bildirim talebi için kullanılan seçenekleri belirtir. Bunlar, aşağıda belirtildiği gibi sözdizimli name=value bir dizide belirtilir. Uygulama, hizmeti oluşturmaktan ve bildirimleri kuyruk üzerinden okumaktan sorumludur.

Sorgu bildirimleri seçenekleri dizesinin sözdizimi şudur:

service=<service-name>[;(local database=<database>|broker instance=<broker instance>)]

Örneğin:

service=mySSBService;local database=mydb

SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT

SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT özniteliği, sorgu bildiriminin aktif kalması için kaç saniye olduğunu belirtir. Varsayılan değer 432000 saniyedir (5 gün). ValuePtr değeri SQLLEN türündendir.

SQL_SOPT_SS_PARAM_FOCUS

SQL_SOPT_SS_PARAM_FOCUS özniteliği, sonraki SQLBindParameter, SQLGetDescField, SQLSetDescField, SQLGetDescRec ve SQLSetDescRec çağrılarının odak noktasını belirler.

SQL_SOPT_SS_PARAM_FOCUS için tip SQLULEN'dir.

Varsayılan 0'dır, bu da bu çağrıların SQL ifadesindeki parametre işaretleyicilerine karşılık gelen parametreleri adreslediği anlamına gelir. Tablo değerli bir parametrenin parametre numarasına ayarlandığında, bu çağırmalar o tablo değerli parametrenin sütunlarını adresler. Bir değere ayarlandığında, tablo değerli bir parametrenin parametre numarası olmayan bir değere ayarlandığında, bu çağrılar IM020 hatasını döndürür: "Parametre odak tablo değerli parametreye referans vermez".

SQL_SOPT_SS_NAME_SCOPE

SQL_SOPT_SS_NAME_SCOPE özniteliği, sonraki katalog fonksiyon çağrıları için isim kapsamını belirtir. SQLColumns tarafından verilen sonuç kümesi, SQL_SOPT_SS_NAME_SCOPE ayarına bağlıdır.

SQL_SOPT_SS_NAME_SCOPE için tip SQLULEN'dir.

ValuePtr değeri Description
SQL_SS_NAME_SCOPE_TABLE Default.

Tablo değerli parametreler kullanıldığında, gerçek tablolar için meta verilerin geri dönmesi gerektiğini gösterir.

Seyrek sütunlar özelliği kullanılırken, SQLColumns yalnızca seyrek column_set üyesi olmayan sütunları döndürür.
SQL_SS_NAME_SCOPE_TABLE_TYPE Uygulamanın gerçek bir tablo yerine bir tablo türü için meta veri gerektirdiğini gösterir (katalog fonksiyonları tablo türleri için meta veri döndürmelidir). Uygulama daha sonra tablo değerli parametrenin TYPE_NAME'sini TableName parametresi olarak aktarır.
SQL_SS_NAME_SCOPE_EXTENDED Seyrek sütunlar özelliği kullanıldığında, SQLColumns üyelik column_set tüm sütunları döndürür.
SQL_SS_NAME_SCOPE_SPARSE_COLUMN_SET Seyrek sütunlar özelliği kullanıldığında, SQLColumns yalnızca seyrek column_set'in üyesi olan sütunları döndürür.
SQL_SS_NAME_SCOPE_DEFAULT Eşit SQL_SS_NAME_SCOPE_TABLE.

SS_TYPE_CATALOG_NAME ve SS_TYPE_SCHEMA_NAME, sırasıyla CatalogName ve SchemaName parametreleriyle birlikte kullanılır; bu parametreler tablo değerli parametrenin katalog ve şemasını tanımlamak için kullanılır. Bir uygulama, tablo değerli parametreler için meta verileri almayı tamamladığında, SQL_SOPT_SS_NAME_SCOPE varsayılan değeri olan SQL_SS_NAME_SCOPE_TABLE'a geri ayarlamalıdır.

SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_TABLE olarak ayarlandığında, bağlı sunuculara yapılan sorgular başarısız olur. Sunucu bileşeni içeren katalogla SQLColumns veya SQLPrimaryKeys çağrıları başarısız olur.

SQL_SOPT_SS_NAME_SCOPE geçersiz bir değere ayarlamaya çalışırsanız, SQL_ERROR döner ve SQLSTATE HY024 ile bir tanı kaydı ve "Geçersiz özellik değeri" mesajı ile oluşturulur.

Eğer SQLTables, SQLColumns veya SQLPrimaryKeys dışındaki bir katalog fonksiyonu çağrılırsa SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_TABLE değeri dışında olduğunda SQL_ERROR döner. SQLSTATE HY010 ile bir tanı kaydı oluşturulur ve "Function sequence error (SQL_SOPT_SS_NAME_SCOPE is not not set to SQL_SS_NAME_SCOPE_TABLE)" mesajı gönderilir.