Bagikan melalui


Pemetaan SQLGetStmtOption

Ketika aplikasi memanggil SQLGetStmtOption ke driver ODBC 3.x yang tidak mendukungnya, panggilan ke

SQLGetStmtOption(hstmt, fOption, pvParam)  

akan menghasilkan sebagai berikut:

  • Jika fOption menunjukkan opsi pernyataan yang ditentukan ODBC yang mengembalikan string, Driver Manager akan memanggil

    SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)  
    
  • Jika fOption menunjukkan opsi pernyataan yang ditentukan ODBC yang mengembalikan nilai bilangan bulat 32-bit, Manajer Driver memanggil

    SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, 0, NULL)  
    
  • Jika fOption menunjukkan opsi pernyataan yang ditentukan driver, Driver Manager akan memanggil

    SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)  
    

Dalam tiga kasus sebelumnya, argumen StatementHandle diatur ke nilai di hstmt, argumen Atribut diatur ke nilai dalam fOption, dan argumen ValuePtr diatur ke nilai yang sama dengan pvParam.

Untuk opsi koneksi string yang ditentukan ODBC, Manajer Driver mengatur argumen BufferLength dalam panggilan ke SQLGetConnectAttr ke panjang maksimum yang telah ditentukan (SQL_MAX_OPTION_STRING_LENGTH); untuk opsi koneksi nonstring, BufferLength diatur ke 0.

Opsi pernyataan SQL_GET_BOOKMARK tidak digunakan lagi di ODBC 3.x. Agar driver ODBC 3.x berfungsi dengan aplikasi ODBC 2.x yang menggunakan SQL_GET_BOOKMARK, driver tersebut harus mendukung SQL_GET_BOOKMARK. Agar driver ODBC 3.x berfungsi dengan aplikasi ODBC 2.x , driver tersebut harus mendukung pengaturan SQL_USE_BOOKMARKS ke SQL_UB_ON dan harus mengekspos marka buku panjang tetap. Jika driver ODBC 3.x hanya mendukung bookmark panjang variabel, bukan bookmark panjang tetap, driver tersebut harus mengembalikan SQLSTATE HYC00 (Fitur opsional tidak diterapkan) jika aplikasi ODBC 2.x mencoba mengatur SQL_USE_BOOKMARKS ke SQL_UB_ON.

Untuk driver ODBC 3.x , Driver Manager tidak lagi memeriksa untuk melihat apakah Opsi berada di antara SQL_STMT_OPT_MIN dan SQL_STMT_OPT_MAX, atau lebih besar dari SQL_CONNECT_OPT_DRVR_START. Driver harus memeriksa ini.