SQLAllocHandle İşlevi

Uygunluk
Tanıtılan Sürüm: ODBC 3.0 Standartlarına Uyum: ISO 92

Summary
SQLAllocHandle bir ortam, bağlantı, ifade veya tanımlayıcı tutamacı atar.

Note

Bu fonksiyon, ODBC 2.0 fonksiyonları SQLAllocConnect, SQLAllocEnv ve SQLAllocStmt'nin yerini alan genel bir tutamaçlar tahsis etmek için kullanılan genel bir fonksiyondur. SQLAllocHandle çağıran uygulamaların ODBC 2 ile çalışmasına izin vermek için. x sürücüler ile ilgili olarak, Driver Manager ile SQLAllocHandle'a yapılan bir çağrı uygun şekilde SQLAllocConnect, SQLAllocEnv veya SQLAllocStmt ile eşlenir. Daha fazla bilgi için "Yorumlar" bölümüne bakınız. Driver Manager bu fonksiyonu ODBC 3 olduğunda neye eşlediği hakkında daha fazla bilgi için. x uygulaması ODBC 2 ile çalışıyor. x sürücüsü, bkz. Uygulamaların Geriye Doğru Uyumluluğu için Eşleme Değiştirme Fonksiyonları.

Syntax

  
SQLRETURN SQLAllocHandle(  
      SQLSMALLINT   HandleType,  
      SQLHANDLE     InputHandle,  
      SQLHANDLE *   OutputHandlePtr);  

Arguments

HandleType
[Giriş] SQLAllocHandle tarafından tahsis edilecek tutuk türü. Aşağıdaki değerlerden biri olmalıdır:

  • SQL_HANDLE_DBC

  • SQL_HANDLE_DBC_INFO_TOKEN

  • SQL_HANDLE_DESC

  • SQL_HANDLE_ENV

  • SQL_HANDLE_STMT

SQL_HANDLE_DBC_INFO_TOKEN tutamacı yalnızca Sürücü Yöneticisi ve sürücüsü tarafından kullanılır. Uygulamalar bu tanıtıcı türünü kullanmamalıdır. SQL_HANDLE_DBC_INFO_TOKEN hakkında daha fazla bilgi için bkz. ODBC Sürücüsünde Farkındalık Connection-Pool Geliştirme.

InputHandle
[Giriş] Yeni tutamacın tahsis edileceği giriş kolu. HandleType SQL_HANDLE_ENV ise, bu SQL_NULL_HANDLE. HandleType SQL_HANDLE_DBC ise, bu bir ortam handle olmalı, SQL_HANDLE_STMT veya SQL_HANDLE_DESC ise bağlantı tutacağı olmalıdır.

OutputHandlePtr
[Çıkış] Tutamacı yeni tahsis edilen veri yapısına geri döndürmek için bir tampon işareti.

İadeler

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE ya da SQL_ERROR.

Bir ortam tutalı dışında bir tutamak ayrılırken, SQLAllocHandle SQL_ERROR döndürürse, çıktı argümanı null işaretçi değilse OutputHandlePtr'iHandleType'ın değerine bağlı olarak SQL_NULL_HDBC, SQL_NULL_HSTMT veya SQL_NULL_HDESC olarak ayarlar. Uygulama, InputHandle argümanındaki tutamaçla ilişkili tanı veri yapısından ek bilgi elde edebilir.

Ortam Handle Tahsis Hataları

Ortam tahsisi hem Sürücü Yöneticisi içinde hem de her sürücü içinde gerçekleşir. SQLAllocHandle tarafından SQL_HANDLE_ENV HandleType ile geri dönen hata, hatanın meydana geldiği seviyeye bağlıdır.

Eğer Sürücü Yöneticisi, SQLAllocHandle SQL_HANDLE_ENV HandleType ile çağrıldığında *OutputHandlePtr için bellek ayıramıyorsa veya uygulama OutputHandlePtr için null işaretçi sağlarsa, SQLAllocHandle SQL_ERROR döndürür. Sürücü Yöneticisi *OutputHandlePtr'i SQL_NULL_HENV olarak ayarlar (uygulama boş işaretçi sağlamadıkça SQL_ERROR döndürür). Ek tanı bilgisi ile ilişkilendirilecek bir kullanıcı adı yoktur.

Sürücü Yöneticisi, uygulama SQLConnect, SQLBrowseConnect veya SQLDriverConnect çağırana kadar sürücü düzeyindeki ortam handle ayırma fonksiyonunu çağırmaz. Sürücü düzeyindeki SQLAllocHandle fonksiyonunda hata oluşursa, Driver Manager seviyesindeki SQLConnect, SQLBrowseConnect veya SQLDriverConnect fonksiyonu SQL_ERROR döner. Tanı veri yapısı SQLSTATE IM004 içerir (Sürücünün SQLAllocHandle başarısız oldu). Hata bağlantı kolunda döner.

Driver Manager ile bir sürücü arasındaki fonksiyon çağrılarının akışı hakkında daha fazla bilgi için SQLConnect Fonksiyonu sayfasına bakınız.

Diagnostics

SQLAllocHandle SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, uygun HandleType ve Handle'ıInputHandle değerine ayarlayarak SQLGetDiagRec çağrılarak ilişkili bir SQLSTATE değeri elde edilebilir. SQL_SUCCESS_WITH_INFO (ama SQL_ERROR değil) OutputHandle argümanı için geri dönebilir. Aşağıdaki tablo, genellikle SQLAllocHandle tarafından duygulanan SQLSTATE değerlerini listeler ve her birini bu fonksiyon bağlamında açıklar; "(DM)" gösterimi, Sürücü Yöneticisi tarafından döndürülen SQLSTATE açıklamalarından önce gelir. Aksi belirtilmediği sürece, her SQLSTATE değeriyle ilişkili dönüş kodu SQL_ERROR.

SQLSTATE Error Description
01000 Genel uyarı Sürücüye özgü bilgilendirici ileti. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)
08003 Bağlantı açık değil (DM) HandleType argümanı SQL_HANDLE_STMT veya SQL_HANDLE_DESC idi, ancak InputHandle argümanı tarafından belirtilen bağlantı açık değildi. Sürücünün bir ifade veya tanımlayıcı tutamacı tahsis edebilmesi için bağlantı süreci başarıyla tamamlanmalı (ve bağlantı açık olmalıdır).
HY000 Genel hata Belirli bir SQLSTATE olmayan ve uygulamaya özgü SQLSTATE tanımlanmayan bir hata oluştu. *MessageText buffer'da SQLGetDiagRec tarafından gönderilen hata mesajı, hatayı ve nedenini tanımlar.
HY001 Bellek ayırma hatası (DM) Sürücü Yöneticisi, belirtilen tutamak için bellek ayıramadı.

Sürücü, belirtilen tutamak için bellek ayıramıyordu.
HY009 Geçersiz null işaretçi kullanımı (DM) OutputHandlePtr argümanı bir null pointer'dı.
HY010 İşlev dizisi hatası (DM) HandleType argümanı SQL_HANDLE_DBC ve SQLSetEnvAttr SQL_ODBC_VERSION ortam özniteliğini ayarlamak için çağrılmamıştır.

(DM) InputHandle için asenkron olarak çalışan bir fonksiyon çağrıldı ve SQLAllocHandle fonksiyonu çağrılırken hâlâ çalışıyordu; HandleType SQL_HANDLE_STMT veya SQL_HANDLE_DESC olarak ayarlandı.
HY013 Bellek yönetimi hatası HandleType argümanı SQL_HANDLE_DBC, SQL_HANDLE_STMT veya SQL_HANDLE_DESC idi; ve fonksiyon çağrısı işlenemedi çünkü altta yatan bellek nesnelerine erişilemiyordu, muhtemelen düşük bellek koşulları nedeniyle.
HY014 Aşılmış tutamaçlar sayısına verilen sınır HandleType argümanı tarafından belirtilen tutucu türü için tahsis edilebilecek tutucu sayısı için sürücü tarafından tanımlanan sınır ulaşıldı.
HY092 Geçersiz öznitelik/seçenek tanımlayıcısı (DM) HandleType argümanı şu değildi: SQL_HANDLE_ENV, SQL_HANDLE_DBC, SQL_HANDLE_STMT veya SQL_HANDLE_DESC.
HY117 Bilinmeyen işlem durumu nedeniyle bağlantı askıya alındı. Yalnızca bağlantıyı kesme ve salt okunur işlevlere izin verilir. (DM) Askıya alınma durumu hakkında daha fazla bilgi için bkz. SQLEndTran İşlevi.
HYC00 İsteğe bağlı özellik uygulanmadı HandleType argümanı SQL_HANDLE_DESC ve sürücü ODBC 2 idi. x sürücü.
HYT01 Bağlantı zaman aşımı süresi doldu Veri kaynağı isteği yanıtlamadan önce bağlantı zaman aşımı süresi doldu. Bağlantı zaman aşımı süresi SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT aracılığıyla ayarlanır.
IM001 Sürücü bu işlevi desteklemiyor (DM) HandleType argümanı SQL_HANDLE_STMT ve sürücü geçerli bir ODBC sürücüsü değildi.

(DM) HandleType argümanı SQL_HANDLE_DESC ve sürücü tanımlayıcı tutamanın ayrılmasını desteklemiyor.

Comments

SQLAllocHandle , aşağıdaki bölümlerde açıklandığı gibi ortamlar, bağlantılar, ifadeler ve tanımlayıcılar için tutamaçlar tahsis etmek amacıyla kullanılır. Tutamaçlar hakkında genel bilgi için Handle sayfasına bakınız.

Sürücü birden fazla tahsis tarafından destekleniyorsa, bir uygulama aynı anda birden fazla ortam, bağlantı veya ifade tutucusu tahsis edebilir. ODBC'de, aynı anda tahsis edilebilecek ortam, bağlantı, ifade veya tanımlayıcı tutamaçları sayısına bir sınır tanımlanmaz. Sürücüler, belirli bir tip sapın aynı anda tahsis edilebilecek sayısına bir sınır koyabilir; Daha fazla bilgi için sürücü dokümantasyonuna bakınız.

Uygulama, zaten var olan bir ortam, bağlantı, ifade veya tanımlayıcı tutalı olarak *OutputHandlePtr ile SQLAllocHandle çağırırsa, sürücü bu tutamaçla ilgili bilgileri üzerine yazar; uygulama bağlantı havuzu kullanmıyorsa (bu bölümün ilerleyen bölümlerinde "Bağlantı Havuzu için Bir Ortam Özniteliği Ayırmak" bölümüne bakınız). Sürücü Yöneticisi, *OutputHandlePtr'ye girilen tutamacın zaten kullanılıp kullanılmadığını kontrol etmez ve bir tutamacın önceki içeriğini üzerine yazmadan önce kontrol etmez.

Note

*OutputHandlePtr için tanımlanmış aynı uygulama değişkeniyle SQLAllocHandle'ı iki kez çağırmak yanlış ODBC uygulama programlamasıdır; ancak SQLFreeHandle çağrılmadan önce tutamacı serbest bırakır. ODBC tutamaçlarının bu şekilde üzerine yazılması, ODBC sürücülerinin tutarsız davranışlarına veya hatalarına yol açabilir.

Birden fazla iş parçacığı destekleyen işletim sistemlerinde, uygulamalar farklı iş parçacıklarında aynı ortamı, bağlantıyı, ifadeyi veya tanımlayıcı tutamacını kullanabilir. Bu nedenle sürücüler bu bilgiye güvenli, çoklu iş parçacıklı erişimi desteklemelidir; Bunu başarmanın bir yolu, örneğin, eleştirel bir bölüm veya semafor kullanmaktır. İş parçacığı hakkında daha fazla bilgi için Multithreading'e bakınız.

SQLAllocHandle , bir ortam tutamacı tahsis etmek için çağrıldığında SQL_ATTR_ODBC_VERSION ortam özniteliğini ayarlamaz; ortam özniteliği uygulama tarafından ayarlanmalıdır aksi takdirde, bağlantı tutamacı tahsis etmek için SQLAllocHandle çağrıldığında SQLSTATE HY010 (Fonksiyon dizisi hatası) döner.

Standartlara uygun uygulamalar için, SQLAllocHandle derleme zamanında SQLAllocHandleStd ile eşlenir. Bu iki fonksiyon arasındaki fark, SQLAllocHandleStd'ninHandleType argümanı SQL_HANDLE_ENV olarak çağrıldığında SQL_ATTR_ODBC_VERSION ortam özniteliğini SQL_OV_ODBC3'e ayarlamasıdır. Bu, standartlara uygun uygulamaların her zaman ODBC 3 olması nedeniyle yapılır. x uygulamalar. Ayrıca, standartlar uygulama versiyonunun kayıtlı olmasını zorunlu kılmaz. Bu iki fonksiyon arasındaki tek fark budur; aksi takdirde aynıdırlar. SQLAllocHandleStd, sürücü yöneticisi içinde SQLAllocHandle ile eşlenir. Bu nedenle, üçüncü taraf sürücülerin SQLAllocHandleStd uygulamak zorunda değildir.

ODBC 3.8 uygulamaları şunları kullanmalıdır:

  • Ortam tutamacı ayırmak için SQLAllocHandleStd değil, SQLAllocHandleHandle ile aynı zamanda bulunuyor.

  • SQLSetEnvAttr ile SQL_ATTR_ODBC_VERSION ortam özetnitesini SQL_OV_ODBC3_80 olarak ayarlayın.

Ortam Tanıtıcı Tahsis Etme

Bir ortam komu, geçerli bağlantı tutamaçları ve aktif bağlantı tutamaçları gibi küresel bilgilere erişim sağlar. Çevre tutamaçları hakkında genel bilgi için Environment Handles sayfasına bakınız.

Bir ortam handle talep etmek için, bir uygulama SQL_HANDLE_ENV HandleType ve SQL_NULL_HANDLE InputHandle ile SQLAllocHandle çağırır. Sürücü, ortam bilgisi için bellek ayırır ve ilgili tutamacın değerini *OutputHandlePtr argümanına geri iletir. Uygulama, ortam handle argümanı gerektiren sonraki tüm çağrılarda *OutputHandle değerini geçirir. Daha fazla bilgi için bkz. Ortam Tanıtıcısını Ayırma.

Bir Sürücü Yöneticisi'nin ortam handle altında, eğer zaten bir sürücünün ortam handle varsa, bağlantı kurulduğunda SQL_HANDLE_ENV HandleTypeile SQLAllocHandle çağrılmaz, sadece SQL_HANDLE_DBC HandleType ile SQLAllocHandle çağrılır. Bir sürücünün ortam kolu, Sürücü Yöneticisi'nin ortam tutamacı altında yoksa, hem SQL_HANDLE_ENV HandleType ile hem de SQL_HANDLE_DBC HandleType olan SQLAllocHandle sürücüde çağrılır; bu zaman ortamın ilk bağlantı kolu sürücüye bağlandığında çağrılır.

Driver Manager SQLAllocHandle fonksiyonunu SQL_HANDLE_ENV HandleType ile işlediğinde, sistem bilgilerinin [ODBC] bölümündeki Trace anahtar kelimesini kontrol eder. Eğer 1 olarak ayarlanmışsa, Sürücü Yöneticisi mevcut uygulama için takip etmeyi etkinleştirir. İz bayrağı ayarlanmışsa, takip ilk ortam tutamacası tahsis edildiğinde başlar ve son ortam tutamacı serbest bırakıldığında sona erer. Daha fazla bilgi için Veri Kaynaklarının Yapılandırılması bölümünü inceleyebilirsiniz.

Bir ortam tutamacı tahsis edildikten sonra, bir uygulama ortam kolunda SQLSetEnvAttr'yi çağırarak SQL_ATTR_ODBC_VERSION ortam özniteliğini ayarlamalıdır. Eğer bu öznitelik, SQLAllocHandle ortamda bir bağlantı tutamacı tahsis etmek için çağrılmadan önce ayarlanmadıysa, bağlantıyı tahsis etme çağrısı SQLSTATE HY010 (Fonksiyon dizisi hatası) döndürecektir. Daha fazla bilgi için Uygulamanın ODBC Versiyonunun Bildirilmesi bölümüne bakınız.

Bağlantı Havuzu için Paylaşılan Ortamların Tahsisi

Ortamlar, tek bir süreçte birden fazla bileşen arasında paylaşılabilir. Paylaşılan bir ortam, aynı anda birden fazla bileşen tarafından kullanılabilir. Bir bileşen paylaşılan bir ortam kullandığında, havuzlu bağlantılar kullanabilir; bu bağlantılar mevcut bağlantıyı yeniden oluşturmadan tahsis edip kullanmasına olanak tanır.

Bağlantı havuzu için kullanılabilecek paylaşılan bir ortamı tahsis etmeden önce, bir uygulama SQLSetEnvAttr'yi çağırarak SQL_ATTR_CONNECTION_POOLING ortam özetliliğini SQL_CP_ONE_PER_DRIVER veya SQL_CP_ONE_PER_HENV olarak ayarlamalıdır. Bu durumda SQLSetEnvAttr çağrılır ve EnvironmentHandle null olarak ayarlanır, bu da özniteliği süreç düzeyinde bir öznitelik yapar.

Bağlantı havuzu etkinleştirildikten sonra, bir uygulama SQLAllocHandleargümanını SQL_HANDLE_ENV olarak ayarlayarak çağırır. Bağlantı havuzunun etkinleştirilmiş olması nedeniyle, bu çağrı tarafından ayrılan ortam, paylaşılan örtük bir ortam olacaktır.

Paylaşılan bir ortam tahsis edildiğinde, kullanılacak ortam SQLAllocHandle ile SQL_HANDLE_DBC HandleType çağrılana kadar belirlenmez. Bu noktada, Sürücü Yöneticisi, uygulamanın talep ettiği ortam özelliklerine uyan mevcut bir ortam bulmaya çalışır. Böyle bir ortam yoksa, ortak bir ortam olarak oluşturulur. Sürücü Yöneticisi, her paylaşılan ortam için bir referans sayısını tutar; Çevre ilk oluşturulduğunda sayım 1 olarak ayarlanır. Eşleşen bir ortam bulunursa, o ortamın tutamacı uygulamaya geri döner ve referans sayısı artırılır. Bu şekilde tahsis edilen bir ortam tutucu, bir ortam tutamasını giriş argümanı olarak kabul eden herhangi bir ODBC fonksiyonunda kullanılabilir.

Bağlantı Tutamacı Tahsisi

Bir bağlantı kolunu, bağlantıdaki geçerli ifade ve tanımlayıcı tutamaçları ile bir işlemin şu anda açık olup olmadığı gibi bilgilere erişim sağlar. Bağlantı tutamaçları hakkında genel bilgi için Bağlantı Tutamaçları'na bakınız.

Bağlantı tutacağı talep etmek için, bir uygulama SQL_HANDLE_DBC HandleTypeile SQLAllocHandle çağırır. InputHandle argümanı, bu tutamacı tahsis eden SQLAllocHandle çağrısıyla geri dönen ortam tutağınına ayarlanır. Sürücü, bağlantı bilgisi için bellek ayırır ve ilgili tutamacın değerini *OutputHandlePtr'de geri iletir. Uygulama, bağlantı tutamacı gerektiren sonraki tüm çağrılarda *OutputHandlePtr değerini geçirir. Daha fazla bilgi için bkz. Bağlantı Tutacağını Ayırmak.

Sürücü Yöneticisi, SQLAllocHandle fonksiyonunu işler ve uygulama SQLConnect, SQLBrowseConnect veya SQLDriverConnect çağırdığında sürücünün SQLAllocHandle fonksiyonunu çağırır. (Daha fazla bilgi için SQLConnect Fonksiyonuna bakınız.)

Eğer SQL_ATTR_ODBC_VERSION ortam özniteliği, SQLAllocHandle çağrılmadan önce ayarlanmamışsa, bağlantıyı tahsis etme çağrısı SQLSTATE HY010 (Fonksiyon dizisi hatası) döner.

Bir uygulama SQLAllocHandleargümanını SQL_HANDLE_DBC olarak ayarlayarak ve aynı zamanda paylaşılan bir ortam tutalı olarak ayarladığında, Sürücü Yöneticisi uygulamanın belirlediği ortam öznitelikleriyle eşleşen mevcut paylaşılan bir ortam bulmaya çalışır. Böyle bir ortam yoksa, Sürücü Yöneticisi tarafından başvuru sayısı 1 olan yeni bir ortam oluşturulur. Eşleşen bir paylaşılan ortam bulunursa, o tutamaç uygulamaya geri döner ve referans sayısı artar.

Kullanılacak gerçek bağlantı, SQLConnect veya SQLDriverConnect çağrınca Sürücü Yöneticisi tarafından belirlenmez. Sürücü Yöneticisi, sqlconnect çağrısındaki bağlantı seçeneklerini (veya SQLDriverConnect çağrısındaki bağlantı anahtar sözcüklerini) ve bağlantı ayırmadan sonra ayarlanan bağlantı özniteliklerini kullanarak havuzdaki hangi bağlantının kullanılması gerektiğini belirler. Daha fazla bilgi için SQLConnect Fonksiyonu sayfasına bakınız.

İfade Tanıtıcısı Tahsis Etme

Bir ifade kaldı, SQL özeti işleme için hata mesajları, imleç adı ve durum bilgileri gibi ifade bilgilerine erişim sağlar. Statement handles hakkında genel bilgi için bkz. Statement Handles.

Bir ifade adresi talep etmek için bir uygulama bir veri kaynağına bağlanır ve ardından SQL ifadelerini göndermeden önce SQLAllocHandle çağırır. Bu çağrıda, HandleType SQL_HANDLE_STMT olarak ayarlanmalı ve InputHandle ise SQLAllocHandle çağrısının o tutamacı tahsis eden bağlantı koluna ayarlanmalıdır. Sürücü, ifade bilgisi için bellek ayırır, ifade tutamacını belirtilen bağlantıyla ilişkilendirir ve ilgili tutamacın değerini *OutputHandlePtr'de geri iletir. Uygulama, bir ifade tutamacı gerektiren sonraki tüm çağrılarda *OutputHandlePtr değerini iletir. Daha fazla bilgi için bkz. Bir Bildiri Kullanıcı Takıntısı.

Özet koşu tahsis edildiğinde, sürücü otomatik olarak dört tanımlayıcıdan oluşan bir küme tahsis eder ve bu tanımlayıcıların tutamaçlarını SQL_ATTR_APP_ROW_DESC, SQL_ATTR_APP_PARAM_DESC, SQL_ATTR_IMP_ROW_DESC ve SQL_ATTR_IMP_PARAM_DESC özniteliklerine atar. Bunlar, örtük olarak tahsis edilmiş tanımlayıcılar olarak adlandırılır. Bir uygulama tanımlayıcısını açıkça tahsis etmek için aşağıdaki "Tanımlayıcı Tutağı Tahsis" bölümüne bakınız.

Tanımlayıcı Kullanıcı Atası

Bir uygulama SQLAllocHandle ile SQL_HANDLE_DESC HandleType çağırdığında, sürücü bir uygulama tanımlayıcısı tahsis eder. Bunlar, açıkça tahsis edilmiş tanımlayıcılar olarak adlandırılır. Uygulama, bir sürücüyü, SQL_ATTR_APP_ROW_DESC veya SQL_ATTR_APP_PARAM_DESC özniteliğine sahip SQLSetStmtAttr fonksiyonunu çağırarak belirli bir ifade için otomatik olarak tahsis edilen bir uygulama tanımlayıcısı yerine açıkça tahsis edilmiş bir uygulama tanımlayıcısı kullanmaya yönlendirir. Bir uygulama tanımlayıcısı açıkça tahsis edilemez, ayrıca bir uygulama tanımlayıcısı SQLSetStmtAttr fonksiyon çağrısında belirtilemez.

Açıkça tahsis edilen tanımlayıcılar, otomatik olarak tahsis edilen tanımlayıcılar gibi, bir ifade tutamacı yerine bir bağlantı koluyla ilişkilendirilir. Tanımlayıcılar yalnızca bir uygulama gerçekten veritabanına bağlandığında ayrılır. Açıkça tahsis edilen tanımlayıcılar bir bağlantı koluyla ilişkilendirildiğinden, bir uygulama bir bağlantı içinde birden fazla ifadeyle açıkça tahsis edilmiş tanımlayıcıyı ilişkilendirebilir. Öte yandan, örtük olarak tahsis edilen bir uygulama tanımlayıcısı, birden fazla ifade tutucusuyla ilişkilendirilemez. (Ayrıldığı başka bir ifade kullanıyla ilişkilendirilemez.) Açıkça tahsis edilmiş tanımlayıcı tutamaçlar, uygulama tarafından ya da SQL_HANDLE_DESC HandleTypeile SQLFreeHandle çağrılarak, ya da bağlantı kapatıldığında örtük olarak serbest bırakılabilir.

Açıkça tahsis edilen tanımlayıcı serbest bırakıldığında, örtük olarak tahsis edilen tanımlayıcı tekrar ifadeyle ilişkilendirilir. (Bu ifadenin SQL_ATTR_APP_ROW_DESC veya SQL_ATTR_APP_PARAM_DESC niteliği yine örtük olarak tahsis edilmiş tanımlayıcı tutağına ayarlanmıştır.) Bu, bağlantıda açıkça tahsis edilen tanımlayıcıyla ilişkilendirilen tüm ilamalar için geçerlidir.

Tanımlayıcılar hakkında daha fazla bilgi için bkz. Tanımlayıcılar.

Kod Örneği

Örnek ODBC programı, SQLBrowseConnect fonksiyonu, SQLConnect fonksiyonu ve SQLSetCursorName fonksiyonu için bkz.

Hakkında bilgi için Bkz:
SQL ifadesinin yürütülmesi SQLExecDirect Fonksiyonu
Hazırlanmış bir SQL deyimini yürütme SQLExecute İşlevi
Bir ortam, bağlantı, ifade veya tanımlayıcı tutamacı serbest bırakmak SQLFreeHandle Fonksiyonu
Bir deyimi yürütme için hazırlama SQLPrepare İşlevi
Bağlantı özelliği ayarı SQLSetConnectAttr İşlevi
Tanımlayıcı alanının ayarlanması SQLSetDescField Fonksiyonu
Bir ortam özniteliği ayarlama SQLSetEnvAttr Function
Deyim özniteliğini ayarlama SQLSetStmtAttr İşlevi