Bagikan melalui


Mengalokasikan Handel Pernyataan

Berlaku untuk: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Sebelum aplikasi dapat menjalankan pernyataan, aplikasi harus mengalokasikan handel pernyataan. Ini dilakukan dengan memanggil SQLAllocHandle dengan parameter HandleType diatur ke SQL_HANDLE_STMT dan InputHandle menunjuk ke handel koneksi.

Atribut pernyataan adalah karakteristik handel pernyataan. Atribut pernyataan sampel dapat mencakup penggunaan marka buku dan jenis kursor untuk digunakan dengan kumpulan hasil pernyataan. Atribut pernyataan diatur dengan SQLSetStmtAttr, dan pengaturannya saat ini diambil dengan menggunakan SQLGetStmtAttr. Tidak ada persyaratan bahwa aplikasi menetapkan atribut pernyataan apa pun; semua atribut pernyataan memiliki default, dan beberapa spesifik driver.

Berhati-hatilah dalam penggunaan beberapa pernyataan ODBC dan opsi koneksi. Memanggil SQLSetConnectAttr dengan fOption diatur ke SQL_ATTR_LOGIN_TIMEOUT mengontrol waktu aplikasi menunggu upaya koneksi kehabisan waktu saat menunggu untuk membuat koneksi (0 menentukan waktu tunggu tak terbatas). Situs yang memiliki waktu respons lambat dapat mengatur nilai ini tinggi untuk memastikan bahwa koneksi memiliki waktu yang cukup untuk diselesaikan. Namun, interval harus selalu cukup rendah untuk memberi pengguna respons dalam waktu yang wajar jika driver tidak dapat tersambung.

Memanggil SQLSetStmtAttr dengan fOption diatur ke SQL_ATTR_QUERY_TIMEOUT mengatur interval waktu habis kueri untuk membantu melindungi server dan pengguna dari kueri yang berjalan lama.

Memanggil SQLSetStmtAttr dengan fOption diatur ke SQL_ATTR_MAX_LENGTH membatasi jumlah data teks dan gambar yang dapat diambil oleh pernyataan individu. Memanggil SQLSetStmtAttr dengan fOption diatur ke SQL_ATTR_MAX_ROWS juga membatasi set baris ke baris n pertama jika itu semua yang diperlukan aplikasi. Perhatikan bahwa pengaturan SQL_ATTR_MAX_ROWS menyebabkan driver mengeluarkan pernyataan SET ROWCOUNT ke server. Ini memengaruhi semua pernyataan Microsoft SQL Server, termasuk pemicu dan pembaruan.

Berhati-hatilah saat Anda mengatur opsi ini. Sebaiknya semua pegangan pernyataan pada handel koneksi memiliki pengaturan yang sama untuk SQL_ATTR_MAX_LENGTH dan SQL_ATTR_MAX_ROWS. Jika driver beralih dari handel pernyataan ke handel pernyataan lain dengan nilai yang berbeda untuk opsi ini, driver harus menghasilkan pernyataan SET TEXTSIZE dan SET ROWCOUNT yang sesuai untuk mengubah pengaturan. Driver tidak dapat menempatkan pernyataan ini dalam batch yang sama dengan pernyataan SQL pengguna karena pernyataan SQL pengguna dapat berisi pernyataan yang harus menjadi pernyataan pertama dalam batch. Driver harus mengirim pernyataan SET TEXTSIZE dan SET ROWCOUNT dalam batch terpisah, yang secara otomatis menghasilkan perjalanan pulang-pergi tambahan ke server.

Lihat juga

Menjalankan Kueri (ODBC)