ODBC API uygulama ayrıntıları

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Açık Veritabanı Bağlantısı (ODBC), uygulamaların ODBC ile uyumlu veri kaynaklarındaki verilere erişmesini sağlayan bir Microsoft Win32 API'dir. Bu makalede ODBC'nin işlev çağrılarını işlemesi, tanıtıcıları yönetmesi, sürücülerle etkileşim kurması ve tanılama sağlaması açıklanmaktadır. Geliştiricilere ODBC'nin uygulamalar, Sürücü Yöneticisi ve veritabanı sürücüleri arasında nasıl çalıştığı hakkında daha net bir anlayış sağlar.

SQL Server Yerel İstemci ODBC sürücü başvurusu her ODBC işlevini belgelemiyor. Yalnızca bu işlevleri SQL Server Yerel İstemci ODBC sürücüsüne özgü parametreler veya davranışlarla belgeler.

SQL Server Yerel İstemci ODBC sürücüsü ODBC 3.51 belirtimine uygundur. Tam başvuru malzemeleri için Veri Erişimi ve Depolama Geliştirici Merkezi'nden Microsoft Veri Erişim Bileşenleri SDK'sını indirin veya ODBC Programcı Başvurusu'na bakın.

ODBC API'sinin çalışma şekli

ODBC, uygulamalar ve veritabanı sürücüleri arasında standartlaştırılmış bir arabirim sağlar. Uygulamanız bir ODBC işlevini çağırdığında, çağrı veri kaynağına ulaşmadan önce birkaç katmandan geçer. Bu mimariyi anlamak, daha verimli kod yazmanıza ve bağlantı sorunlarını gidermenize yardımcı olur.

ODBC tanıtıcı modeli

ODBC, durumu yönetmek için dört hiyerarşik tanıtıcı türü kullanır:

Tanıtıcı türü Amaç
Ortam (HENV) Genel ODBC ayarları ve sürüm oluşturma
Bağlantı (HDBC) Belirli bir veri kaynağına bağlantıyı temsil eder
Deyim (HSTMT) SQL deyimlerini, parametrelerini ve sonuç kümelerini yönetir
Tanımlayıcı (HDESC) Parametreler ve sütunlar için meta verileri depolar

Sürücü yöneticisi ve sürücü etkileşimi

  1. Uygulama bir ODBC API çağrısı yapar.
  2. Driver Manager parametreleri doğrular ve çağrıyı iletir.
  3. Sürücü veri kaynağıyla etkileşim kurar.
  4. Sonuçlar Sürücü Yöneticisi'nin içinden uygulamaya geri akar.

İşlev çağrısı yaşam döngüsü

  1. Tanıtıcıları ayırma.
  2. Ortam veya bağlantı özniteliklerini ayarlayın.
  3. Bir veri kaynağına bağlanın.
  4. SQL deyimlerini hazırlama veya yürütme.
  5. Parametreleri veya sonuç sütunlarını bağlama.
  6. Satırları getirme.
  7. Serbest tutamaçlar.

Tanılama ve hata işleme

Aşağıdaki tanılama işlevlerini kullanın:

  • SQLGetDiagRec
  • SQLGetDiagField

Tanılamalar ortam, bağlantı veya deyim tanıtıcıları için geçerli olabilir.

Unicode ve ANSI çağrıları karşılaştırması

ODBC iki tür işlev sağlar:

  • GIBI ANSI işlevleriSQLExecDirectA
  • Gibi Unicode işlevleriSQLExecDirectW

Modern uygulamalar için Unicode API'leri kullanın.

İş parçacığı oluşturma ve havuza alma

  • İş parçacığı güvenliği, uygulamanın sürücüyü ve Sürücü Yöneticisi'ni nasıl yapılandır olduğuna bağlıdır.
  • Bağlantı ek yükünü azaltmak için her iki düzeyde de bağlantı havuzu oluşturmayı etkinleştirin.

ODBC API başvurusu

Aşağıdaki bölümler ODBC API işlevlerini göreve göre gruplandırmıştır. Her giriş, SQL Server Yerel İstemci sürücüsünün ayrıntılı başvuru sayfasına bağlanır.

Bağlantı ve veri kaynağı

SQL Server bağlantılarını kurmak, yapılandırmak ve yönetmek için bu işlevleri kullanın.

İşlev Description
Sqlconnect DSN, kullanıcı kimliği ve parola kullanarak veri kaynağına bağlantı kurma
Sqldriverconnect Sürücüye özgü anahtar sözcüklerle bağlantı dizesi kullanarak bağlanma
Sqlbrowseconnect Bağlantı dizesi oluşturmak için bağlantı özniteliklerini etkileşimli olarak keşfedin
SQLConfigDataSource Veri kaynağı adlarını (DSN) program aracılığıyla oluşturma, değiştirme veya silme
SQLDrivers Tüm yüklü ODBC sürücülerini ve bunların özniteliklerini listeleme
Sqlgetconnectattr Bağlantı özniteliğinin geçerli değerini alma
SQLSetConnectAttr Zaman aşımları ve işlem yalıtımı gibi bağlantı davranışını yapılandırma

SQL deyimlerini yürütme

SQL deyimlerini hazırlamak, yürütmek ve yönetmek için bu işlevleri kullanın.

İşlev Description
Sqlexecdirect Hazırlık yapmadan bir SQL deyimini hemen yürütme
Sqlexecute Önceden hazırlanmış bir SQL deyimini yürütme
SQLCancel Devam eden deyim yürütmeyi iptal etme
SQLNativeSql ODBC SQL söz dizimini sürücünün yerel SQL diyalektine çevirme
Sqlendtran Bir bağlantı veya ortamda bir işlemi işleme veya geri alma

Parametreleri ve sütunları bağlama

Uygulama değişkenlerini SQL parametrelerine ve sonuç kümesi sütunlarına bağlamak için bu işlevleri kullanın.

İşlev Description
Sqlbindparameter Sql deyimi parametre işaretçisine uygulama arabelleği bağlama
Sqlbindcol Sonuç kümesi sütununa uygulama arabelleği bağlama
Sqlparamdata Yürütme sırasında veri gerektiren sonraki parametreyi alma
Sqlputdata Deyim yürütme sırasında parametre verilerini öbekler halinde gönderme
Sqldescribeparam Parametre işaretçisinin veri türünü ve boyutunu alma
SQLNumParams Hazırlanmış bir deyimdeki parametre sayısını sayma

Sonuçları getirme ve işleme

Sonuç kümelerinden veri almak ve sorgu sonuçlarını işlemek için bu işlevleri kullanın.

İşlev Description
Sqlfetch Sonraki veri satır kümesini getirme ve ilişkili sütun değerleri döndürme
Sqlfetchscroll Sonuç kümesinde mutlak veya göreli konumda bir satır kümesi getirme
Sqlgetdata Tek bir ilişkisiz sütun veya öbekler halinde büyük veriler için veri alma
Sqlmoreresults Bir deyim birden çok sonuç döndürdüğünde sonraki sonuç kümesine gitme
Sqlrowcount INSERT, UPDATE veya DELETE deyimlerinden etkilenen satır sayısını alma
SQLCloseCursor İmleci kapatma ve bekleyen sonuçları atma
Sqlgetcursorname Deyimin imleciyle ilişkili adı alma

Şemayı ve meta verileri bulma

Tablolar, sütunlar ve anahtarlar gibi veritabanı şema bilgilerini sorgulamak için bu işlevleri kullanın.

İşlev Description
Sqltables Veri kaynağındaki tabloları, görünümleri ve tablo benzeri diğer nesneleri listeleme
Sqlcolumns Belirtilen tablolar için sütunları ve bunların özniteliklerini listeleme
Sqlprimarykeys Tablonun birincil anahtar sütunlarını alma
SQLForeignKeys Bir tablo için yabancı anahtarları veya buna başvuran diğer tablolardaki yabancı anahtarları listeleme
Sqlspecialcolumns Bir satırı benzersiz olarak tanımlayan veya otomatik olarak güncelleştiren sütunları tanımlama
SQLStatistics Dizin bilgilerini ve tablo istatistiklerini alma
Sqlprocedures Veri kaynağında kullanılabilen saklı yordamları listeleme
Sqlprocedurecolumns Saklı yordamlar için giriş/çıkış parametrelerini ve sonuç sütunlarını açıklama

Sütun ve sonuç kümesi meta verileri

Sonuç kümelerinin ve sütun özniteliklerinin yapısını incelemek için bu işlevleri kullanın.

İşlev Description
Sqldescribecol Sonuç sütunu için sütun adını, türünü, boyutunu ve null atanabilirliğini alma
Sqlcolattribute Sonuç kümesi sütununun belirli bir özniteliğini alma
Sqlnumresultcols Sonuç kümesindeki sütun sayısını sayma
SQLGetTypeInfo Veri kaynağı tarafından desteklenen SQL veri türlerini listeleme

Ayrıcalıklar ve güvenlik

Veritabanı nesnelerinin izin bilgilerini almak için bu işlevleri kullanın.

İşlev Description
SQLTablePrivileges Veri kaynağındaki tablolarda verilen ayrıcalıkları listeleme
Sqlcolumnprivileges Tablonun belirli sütunlarında verilen ayrıcalıkları listeleme

Ortam ve deyim öznitelikleri

ODBC ortamını ve deyim davranışını yapılandırmak için bu işlevleri kullanın.

İşlev Description
SQLSetEnvAttr ODBC sürümü ve bağlantı havuzu gibi ortam özniteliklerini ayarlama
SQLGetStmtAttr Deyim özniteliğinin geçerli değerini alma
SQLSetStmtAttr İmleç türü ve sorgu zaman aşımı gibi deyim davranışını yapılandırma

Tanımlayıcı

Gelişmiş parametre ve sütun işleme için tanımlayıcı kayıtlarını doğrudan işlemek için bu işlevleri kullanın.

İşlev Description
Sqlgetdescfield Tanımlayıcı kaydından tek bir alan alma
SQLSetDescField Tanımlayıcı kaydında tek bir alan ayarlama
Sqlsetdescrec Tek bir çağrıyla tanımlayıcı kaydında birden çok alan ayarlama

Tanılama ve sürücü bilgileri

Hata bilgilerini almak ve sürücü özelliklerini sorgulamak için bu işlevleri kullanın.

İşlev Description
Sqlgetdiagfield Bir ortamdan, bağlantıdan veya deyimden tanılama alanı alma
Sqlgetınfo Sürücü ve veri kaynağı özellikleri hakkında genel bilgi edinin
SQLGetFunctions Sürücünün hangi ODBC işlevlerini desteklediğini belirleme

Kaynak temizleme

Tanıtıcıları ve ücretsiz kaynakları serbest bırakmak için bu işlevleri kullanın.

İşlev Description
Sqlfreehandle Ortam, bağlantı, deyim veya tanımlayıcı tutamacını serbest bırakma
Sqlfreestmt Serbest deyim kaynakları, imleçleri kapatma veya parametreleri ve sütunları bağlamayı kaldırma