Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
ODBC mendefinisikan status diskrit untuk setiap lingkungan, setiap koneksi, dan setiap pernyataan. Misalnya, lingkungan memiliki tiga status yang mungkin: Tidak dialokasikan (di mana tidak ada lingkungan yang dialokasikan), Dialokasikan (di mana lingkungan dialokasikan tetapi tidak ada koneksi yang dialokasikan), dan Koneksi (di mana lingkungan dan satu atau beberapa koneksi dialokasikan). Koneksi memiliki tujuh kemungkinan status; pernyataan memiliki 13 kemungkinan status.
Item tertentu, seperti yang diidentifikasi oleh handle-nya, berpindah dari satu status ke status lain ketika aplikasi memanggil satu atau lebih fungsi tertentu dan meneruskan handle tersebut ke item tersebut. Gerakan seperti itu disebut transisi status. Misalnya, mengalokasikan handel lingkungan dengan SQLAllocHandle memindahkan lingkungan dari Tidak Dialokasikan ke Dialokasikan, dan membebaskan handel tersebut dengan SQLFreeHandle mengembalikannya dari Dialokasikan ke Tidak Dialokasikan. ODBC mendefinisikan sejumlah transisi status hukum terbatas, yang merupakan cara lain untuk mengatakan bahwa fungsi harus dipanggil dalam urutan tertentu.
Beberapa fungsi, seperti SQLGetConnectAttr, tidak memengaruhi status sama sekali. Fungsi lain memengaruhi status satu item. Misalnya, SQLDisconnect memindahkan koneksi dari status Koneksi ke status Dialokasikan. Terakhir, beberapa fungsi memengaruhi status lebih dari satu item. Misalnya, mengalokasikan handel koneksi dengan SQLAllocHandle memindahkan koneksi dari status Tidak Dialokasikan ke status Dialokasikan dan memindahkan lingkungan dari Dialokasikan ke status Koneksi.
Jika aplikasi memanggil fungsi tidak berurutan, fungsi mengembalikan kesalahan transisi status. Misalnya, jika lingkungan dalam status Koneksi dan aplikasi memanggil SQLFreeHandle dengan handel lingkungan tersebut, SQLFreeHandle mengembalikan SQLSTATE HY010 (Kesalahan urutan fungsi), karena hanya dapat dipanggil ketika lingkungan berada dalam status Dialokasikan. Dengan menentukan ini sebagai transisi status yang tidak valid, ODBC mencegah aplikasi membebaskan lingkungan saat ada koneksi aktif.
Beberapa transisi status melekat dalam desain ODBC. Misalnya, perlu diperhatikan bahwa tidak dimungkinkan untuk mengalokasikan handle koneksi tanpa terlebih dahulu mengalokasikan handle lingkungan, karena fungsi yang mengalokasikan handle koneksi memerlukan handle lingkungan. Transisi status lainnya diberlakukan oleh Manajer Driver dan driver. Misalnya, SQLExecute menjalankan pernyataan yang disiapkan. Jika handel pernyataan yang diteruskan ke sana tidak dalam keadaan Disiapkan, SQLExecute mengembalikan SQLSTATE HY010 (Kesalahan urutan fungsi).
Dari sudut pandang aplikasi, transisi status biasanya mudah: Transisi status hukum cenderung berjalan beriringan dengan alur aplikasi yang ditulis dengan baik. Transisi status lebih kompleks untuk Driver Manager dan driver karena harus melacak status lingkungan, setiap koneksi, dan setiap pernyataan. Sebagian besar pekerjaan ini dilakukan oleh Driver Manager; sebagian besar tugas yang harus dilakukan pengemudi terjadi dengan perintah yang hasilnya tertunda.
Bagian 1 dan 2 dari manual ini ("Pengenalan ODBC" dan "Mengembangkan Aplikasi dan Driver") cenderung tidak secara eksplisit menyebutkan transisi status. Sebaliknya, mereka menjelaskan urutan di mana fungsi harus dipanggil. Misalnya, "Pernyataan Eksekusi" menyatakan bahwa pernyataan harus disiapkan dengan SQLPrepare sebelum dapat dijalankan dengan SQLExecute. Untuk deskripsi lengkap tentang status dan transisi status, termasuk transisi mana yang diperiksa oleh Manajer Driver dan yang harus diperiksa oleh driver, lihat Lampiran B: Tabel Transisi Status ODBC.