Aracılığıyla paylaş


ODBC: ODBC API İşlevlerini Doğrudan Çağırma

Veritabanı sınıfları, bir veri kaynağına ODBC'den daha basit bir arabirim sağlar. Sonuç olarak, sınıflar tüm ODBC API'sini kapsüllemez. Sınıfların yeteneklerinin dışında kalan tüm işlevler için ODBC API işlevlerini doğrudan çağırmanız gerekir. Örneğin, ODBC katalog işlevlerini (::SQLColumns, ::SQLProcedures, ::SQLTablesve diğerlerini) doğrudan çağırmanız gerekir.

Not

ODBC veri kaynaklarına bu konuda açıklandığı gibi MFC ODBC sınıfları aracılığıyla veya MFC Veri Erişim Nesnesi (DAO) sınıfları aracılığıyla erişilebilir.

Bir ODBC API işlevini doğrudan çağırmak için, çağrıları çerçeve olmadan yapıyorsanız uygulayacağınız adımları uygulamanız gerekir. Adımlar şunlardır:

  • Çağrının döndürdüğü sonuçlar için depolama alanı ayırın.

  • İşlevin parametre imzalarına bağlı olarak bir ODBC HDBC veya HSTMT tanıtıcı geçirin. ODBC tutamacını almak için AFXGetHENV makrosunu kullanın.

    Üye değişkenleri CDatabase::m_hdbc ve CRecordset::m_hstmt kullanılabilir, böylece bunları kendiniz ayırmanız ve başlatmanız gerekmez.

  • Belki de ana çağrıya hazırlanmak veya bu çağrıyı izlemek için ek ODBC işlevleri çağırın.

  • bitirdiğinizde depolama alanını serbest bırakma.

Bu adımlar hakkında daha fazla bilgi için bkz . ODBC Programcı Başvurusu.

Bu adımlara ek olarak, işlev dönüş değerlerini denetlemek, programınızın zaman uyumsuz bir çağrının bitmesini beklemediğinden emin olmak vb. için ek adımlar uygulamanız gerekir. AFX_SQL_ASYNC ve AFX_SQL_SYNC makrolarını kullanarak bu son adımları basitleştirebilirsiniz. Daha fazla bilgi için bkz . MFC makroları ve genelleri.

Ayrıca bkz.

ODBC Temelleri