Hasil Pemrosesan (ODBC)

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

Setelah aplikasi mengirimkan pernyataan SQL, SQL Server mengembalikan data yang dihasilkan sebagai satu atau beberapa tataan hasil. Tataan hasil adalah sekumpulan baris dan kolom yang cocok dengan kriteria kueri. Pernyataan SELECT, fungsi katalog, dan beberapa prosedur tersimpan menghasilkan tataan hasil yang tersedia untuk aplikasi dalam bentuk tabular. Jika pernyataan SQL yang dijalankan adalah prosedur tersimpan, batch yang berisi beberapa perintah, atau pernyataan SELECT yang berisi kata kunci, akan ada beberapa tataan hasil untuk diproses.

Fungsi katalog ODBC juga dapat mengambil data. Misalnya, SQLColumns mengambil data tentang kolom di sumber data. Tataan hasil ini dapat berisi nol atau beberapa baris.

Pernyataan SQL lainnya, seperti GRANT atau REVOKE, tidak mengembalikan tataan hasil. Untuk pernyataan ini, kode pengembalian dari SQLExecute atau SQLExecDirect biasanya merupakan satu-satunya indikasi pernyataan berhasil.

Setiap pernyataan INSERT, UPDATE, dan DELETE mengembalikan tataan hasil yang hanya berisi jumlah baris yang terpengaruh oleh modifikasi. Jumlah ini tersedia saat aplikasi memanggil SQLRowCount. ODBC 3. aplikasi x harus memanggil SQLRowCount untuk mengambil kumpulan hasil atau SQLMoreResults untuk membatalkannya. Saat aplikasi menjalankan prosedur batch atau tersimpan yang berisi beberapa pernyataan INSERT, UPDATE, atau DELETE, hasil yang ditetapkan dari setiap pernyataan modifikasi harus diproses menggunakan SQLRowCount atau dibatalkan menggunakan SQLMoreResults. Jumlah ini dapat dibatalkan dengan menyertakan pernyataan SET NOCOUNT ON dalam batch atau prosedur tersimpan.

Transact-SQL menyertakan pernyataan SET NOCOUNT. Saat opsi NOCOUNT diatur aktif, SQL Server tidak mengembalikan jumlah baris yang terpengaruh oleh pernyataan dan SQLRowCount mengembalikan 0. Versi driver SQL Server Native Client ODBC memperkenalkan opsi SQLGetStmtAttr khusus driver, SQL_SOPT_SS_NOCOUNT_STATUS, untuk melaporkan apakah opsi NOCOUNT aktif atau nonaktif. Setiap kali SQLRowCount mengembalikan 0, aplikasi harus menguji SQL_SOPT_SS_NOCOUNT_STATUS. Jika SQL_NC_ON dikembalikan, nilai 0 dari SQLRowCount hanya menunjukkan bahwa SQL Server belum mengembalikan jumlah baris. Jika SQL_NC_OFF dikembalikan, itu berarti BAHWA NOCOUNT nonaktif dan nilai 0 dari SQLRowCount menunjukkan bahwa pernyataan tersebut tidak memengaruhi baris apa pun. Aplikasi tidak boleh menampilkan nilai SQLRowCount saat SQL_SOPT_SS_NOCOUNT_STATUS SQL_NC_OFF. Batch besar atau prosedur tersimpan mungkin berisi beberapa pernyataan SET NOCOUNT sehingga programmer tidak dapat mengasumsikan SQL_SOPT_SS_NOCOUNT_STATUS tetap konstan. Opsi harus diuji setiap kali SQLRowCount mengembalikan 0.

Beberapa pernyataan Transact-SQL lainnya mengembalikan data mereka dalam pesan daripada tataan hasil. Ketika driver SQL Server Native Client ODBC menerima pesan-pesan ini, ia mengembalikan SQL_SUCCESS_WITH_INFO untuk memberi tahu aplikasi bahwa pesan informasi tersedia. Aplikasi kemudian dapat memanggil SQLGetDiagRec untuk mengambil pesan-pesan ini. Pernyataan Transact-SQL yang bekerja dengan cara ini adalah:

  • DBCC

  • SET SHOWPLAN (tersedia dengan versi SQL Server yang lebih lama)

  • MENGATUR STATISTIK

  • PRINT

  • RAISERROR

Driver SQL Server Native Client ODBC mengembalikan SQL_ERROR pada RAISERROR dengan tingkat keparahan 11 atau lebih tinggi. Jika tingkat keparahan RAISERROR adalah 19 atau lebih tinggi, koneksi juga terputus.

Untuk memproses tataan hasil dari pernyataan SQL, aplikasi:

  • Menentukan karakteristik kumpulan hasil.

  • Mengikat kolom ke variabel program.

  • Mengambil nilai tunggal, seluruh baris nilai, atau beberapa baris nilai.

  • Pengujian untuk melihat apakah ada lebih banyak tataan hasil, dan jika demikian, loop kembali untuk menentukan karakteristik tataan hasil baru.

Proses pengambilan baris dari sumber data dan mengembalikannya ke aplikasi disebut mengambil.

Di Bagian Ini

Lihat juga

SQL Server Native Client (ODBC)
Topik Cara Pemrosesan Hasil (ODBC)