Bagikan melalui


Fungsi SQLExecDirect

Kesesuaian
Versi diperkenalkan: Kepatuhan Standar ODBC 1.0: ISO 92

Ringkasan
SQLExecDirect menjalankan pernyataan yang dapat disiapkan, menggunakan nilai variabel penanda parameter saat ini jika ada parameter dalam pernyataan. SQLExecDirect adalah cara tercepat untuk mengirimkan pernyataan SQL untuk eksekusi satu kali.

Sintaks

  
SQLRETURN SQLExecDirect(  
     SQLHSTMT     StatementHandle,  
     SQLCHAR *    StatementText,  
     SQLINTEGER   TextLength);  

Argumen

StatementHandle
[Input] Handel pernyataan.

StatementText
[Input] Pernyataan SQL yang akan dijalankan.

TextLength
[Input] Panjang *StatementText dalam karakter.

Mengembalikan

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NEED_DATA, SQL_STILL_EXECUTING, SQL_ERROR, SQL_NO_DATA, SQL_INVALID_HANDLE, atau SQL_PARAM_DATA_AVAILABLE.

Diagnostik

Saat SQLExecDirect mengembalikan SQL_ERROR atau SQL_SUCCESS_WITH_INFO, nilai SQLSTATE terkait dapat diperoleh dengan memanggil SQLGetDiagRec dengan HandleType SQL_HANDLE_STMT dan Handle of StatementHandle. Tabel berikut mencantumkan nilai SQLSTATE yang umumnya dikembalikan oleh SQLExecDirect dan menjelaskan masing-masing dalam konteks fungsi ini; notasi "(DM)" mendahului deskripsi SQLSTATEs yang dikembalikan oleh Driver Manager. Kode pengembalian yang terkait dengan setiap nilai SQLSTATE SQL_ERROR, kecuali disebutkan sebaliknya.

SQLSTATE Kesalahan Deskripsi
01000 Peringatan umum Pesan informasi khusus driver. (Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.)
01001 Konflik operasi kursor *StatementText berisi pernyataan pembaruan atau penghapusan yang diposisikan, dan tidak ada baris atau lebih dari satu baris yang diperbarui atau dihapus. (Untuk informasi selengkapnya tentang pembaruan ke lebih dari satu baris, lihat deskripsi SQL_ATTR_SIMULATE_CURSOR Atribut di SQLSetStmtAttr.)

(Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.)
01003 Nilai NULL dihilangkan dalam fungsi yang ditetapkan Argumen StatementText berisi fungsi yang ditetapkan (seperti AVG, MAX, MIN, dan sebagainya), tetapi bukan fungsi kumpulan COUNT, dan nilai argumen NULL dihilangkan sebelum fungsi diterapkan. (Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.)
01004 Data string, terpotong kanan String atau data biner yang dikembalikan untuk parameter input/output atau output menghasilkan pemotongan karakter nonblank atau data biner non-NULL. Jika itu adalah nilai string, nilai tersebut dipotong kanan. (Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.)
01006 Hak istimewa tidak dicabut *StatementText berisi pernyataan REVOKE , dan pengguna tidak memiliki hak istimewa yang ditentukan. (Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.)
01007 Hak istimewa tidak diberikan *StatementText adalah pernyataan GRANT , dan pengguna tidak dapat diberikan hak istimewa yang ditentukan.
01S02 Nilai opsi berubah Atribut pernyataan tertentu tidak valid karena kondisi kerja implementasi, sehingga nilai serupa untuk sementara diganti. (SQLGetStmtAttr dapat dipanggil untuk menentukan nilai yang diganti sementara.) Nilai pengganti valid untuk StatementHandle hingga kursor ditutup, di mana atribut pernyataan kembali ke nilai sebelumnya. Atribut pernyataan yang dapat diubah adalah:

SQL_ ATTR_CONCURRENCY SQL_ ATTR_CURSOR_TYPE SQL_ ATTR_KEYSET_SIZE SQL_ ATTR_MAX_LENGTH SQL_ ATTR_MAX_ROWS SQL_ ATTR_QUERY_TIMEOUT SQL_ ATTR_SIMULATE_CURSOR

(Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.)
01S07 Pemotongan pecahan Data yang dikembalikan untuk parameter input/output atau output dipotong sedih sehingga bagian pecahan dari jenis data numerik dipotong atau bagian pecahan dari komponen waktu dari jenis data waktu, tanda waktu, atau interval dipotong.

(Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.)
07002 Bidang COUNT salah Jumlah parameter yang ditentukan dalam SQLBindParameter kurang dari jumlah parameter dalam pernyataan SQL yang terkandung dalam *StatementText.

SQLBindParameter dipanggil dengan ParameterValuePtr diatur ke pointer null, StrLen_or_IndPtr tidak diatur ke SQL_NULL_DATA atau SQL_DATA_AT_EXEC, dan InputOutputType tidak diatur ke SQL_PARAM_OUTPUT, sehingga jumlah parameter yang ditentukan dalam SQLBindParameter lebih besar dari jumlah parameter dalam pernyataan SQL yang terkandung dalam *StatementText.
07006 Pelanggaran atribut jenis data terbatas Nilai data yang diidentifikasi oleh argumen ValueType di SQLBindParameter untuk parameter terikat tidak dapat dikonversi ke jenis data yang diidentifikasi oleh argumen ParameterType di SQLBindParameter.

Nilai data yang dikembalikan untuk parameter yang terikat sebagai SQL_PARAM_INPUT_OUTPUT atau SQL_PARAM_OUTPUT tidak dapat dikonversi ke jenis data yang diidentifikasi oleh argumen ValueType di SQLBindParameter.

(Jika nilai data untuk satu atau beberapa baris tidak dapat dikonversi tetapi satu atau beberapa baris berhasil dikembalikan, fungsi ini mengembalikan SQL_SUCCESS_WITH_INFO.)
07007 Pelanggaran nilai parameter terbatas Jenis parameter SQL_PARAM_INPUT_OUTPUT_STREAM hanya digunakan untuk parameter yang mengirim dan menerima data dalam beberapa bagian. Buffer terikat input tidak diperbolehkan untuk jenis parameter ini.

Kesalahan ini akan terjadi ketika jenis parameter SQL_PARAM_INPUT_OUTPUT, dan ketika *StrLen_or_IndPtr yang ditentukan dalam SQLBindParameter tidak sama dengan SQL_NULL_DATA, SQL_DEFAULT_PARAM, SQL_LEN_DATA_AT_EXEC(len), atau SQL_DATA_AT_EXEC.
07S01 Penggunaan parameter default tidak valid Nilai parameter, diatur dengan SQLBindParameter, SQL_DEFAULT_PARAM, dan parameter yang sesuai tidak memiliki nilai default.
08S01 Kegagalan tautan komunikasi Tautan komunikasi antara driver dan sumber data tempat driver tersambung gagal sebelum fungsi selesai diproses.
21S01 Sisipkan daftar nilai tidak cocok dengan daftar kolom *StatementText berisi pernyataan INSERT , dan jumlah nilai yang akan disisipkan tidak cocok dengan tingkat tabel turunan.
21S02 Tingkat tabel turunan tidak cocok dengan daftar kolom *StatementText berisi pernyataan CREATE VIEW , dan daftar kolom yang tidak memenuhi syarat (jumlah kolom yang ditentukan untuk tampilan dalam argumen pengidentifikasi kolom pernyataan SQL) berisi lebih banyak nama daripada jumlah kolom dalam tabel turunan yang ditentukan oleh argumen spesifikasi kueri dari pernyataan SQL.
22001 Data string, pemotongan kanan Penetapan karakter atau nilai biner ke kolom menghasilkan pemotongan data karakter nonblank atau data biner non-null.
22002 Variabel indikator diperlukan tetapi tidak disediakan Data NULL terikat ke parameter output yang StrLen_or_IndPtr diatur oleh SQLBindParameter adalah penunjuk null.
22003 Nilai numerik di luar rentang *StatementText berisi pernyataan SQL yang berisi parameter numerik terikat atau harfiah, dan nilai menyebabkan seluruh (dibandingkan dengan pecahan) bagian dari angka yang akan dipotong saat ditetapkan ke kolom tabel terkait.

Mengembalikan nilai numerik (sebagai numerik atau string) untuk satu atau beberapa parameter input/output atau output akan menyebabkan seluruh (dibandingkan dengan pecahan) bagian dari angka yang akan dipotong.
22007 Format tanggalwaktu tidak valid *StatementText berisi pernyataan SQL yang berisi struktur tanggal, waktu, atau tanda waktu sebagai parameter terikat, dan parameter masing-masing, tanggal, waktu, atau tanda waktu yang tidak valid.

Parameter input/output atau output terikat ke struktur C tanggal, waktu, atau tanda waktu, dan nilai dalam parameter yang dikembalikan masing-masing, tanggal, waktu, atau tanda waktu yang tidak valid. (Fungsi mengembalikan SQL_SUCCESS_WITH_INFO.)
22008 Meluapnya bidang tanggalwaktu *StatementText berisi pernyataan SQL yang berisi ekspresi tanggalwaktu yang, ketika dihitung, menghasilkan struktur tanggal, waktu, atau tanda waktu yang tidak valid.

Ekspresi tanggalwaktu yang dihitung untuk parameter input/output atau output menghasilkan struktur C tanggal, waktu, atau tanda waktu yang tidak valid.
22012 Pembagian dengan nol *StatementText berisi pernyataan SQL yang berisi ekspresi aritmatika yang menyebabkan pembagian nol.

Ekspresi aritmatika yang dihitung untuk parameter input/output atau output menghasilkan pembagian dengan nol.
22015 Meluapnya bidang interval *StatementText berisi parameter numerik atau interval yang tepat yang, ketika dikonversi ke jenis data SQL interval, menyebabkan hilangnya digit signifikan.

*StatementText berisi parameter interval dengan lebih dari satu bidang yang, ketika dikonversi ke jenis data numerik dalam kolom, tidak memiliki representasi dalam jenis data numerik.

*StatementText berisi data parameter yang ditetapkan ke jenis SQL interval, dan tidak ada representasi nilai jenis C dalam jenis SQL interval.

Menetapkan parameter input/output atau output yang merupakan jenis SQL numerik atau interval yang tepat ke jenis C interval menyebabkan hilangnya digit signifikan.

Ketika parameter input/output atau output ditetapkan ke struktur interval C, tidak ada representasi data dalam struktur data interval.
22018 Nilai karakter tidak valid untuk spesifikasi cast *StatementText berisi tipe C yang tepat atau perkiraan numerik, tanggalwaktu, atau tipe data interval; jenis SQL kolom adalah tipe data karakter; dan nilai dalam kolom bukan harfiah yang valid dari jenis C terikat.

Ketika parameter input/output atau output dikembalikan, jenis SQL adalah jenis data numerik yang tepat atau perkiraan, tanggalwaktu, atau interval; jenis C SQL_C_CHAR; dan nilai dalam kolom bukan harfiah yang valid dari jenis SQL terikat.
22019 Karakter escape tidak valid *StatementText berisi pernyataan SQL yang berisi predikat LIKE dengan ESCAPE dalam klausul WHERE, dan panjang karakter escape berikut ESCAPE tidak sama dengan 1.
22025 Urutan escape tidak valid *StatementText berisi pernyataan SQL yang berisi "KARAKTER ESCAPE nilai pola LIKE" dalam klausa WHERE, dan karakter yang mengikuti karakter escape dalam nilai pola bukan salah satu dari "%" atau "_".
23000 Pelanggaran batasan integritas *StatementText berisi pernyataan SQL yang berisi parameter atau harfiah. Nilai parameter adalah NULL untuk kolom yang didefinisikan sebagai NOT NULL di kolom tabel terkait, nilai duplikat disediakan untuk kolom yang dibatasi hanya berisi nilai unik, atau beberapa batasan integritas lainnya dilanggar.
24000 Status kursor tidak valid Kursor diposisikan pada StatementHandle oleh SQLFetch atau SQLFetchScroll. Kesalahan ini dikembalikan oleh Driver Manager jika SQLFetch atau SQLFetchScroll belum mengembalikan SQL_NO_DATA, dan dikembalikan oleh driver jika SQLFetch atau SQLFetchScroll telah mengembalikan SQL_NO_DATA.

Kursor terbuka tetapi tidak diposisikan pada StatementHandle.

*StatementText berisi pernyataan pembaruan atau penghapusan yang diposisikan, dan kursor diposisikan sebelum awal kumpulan hasil atau setelah akhir tataan hasil.
34000 Nama kursor tidak valid *StatementText berisi pernyataan pembaruan atau penghapusan yang diposisikan, dan kursor yang direferensikan oleh pernyataan yang dijalankan tidak terbuka.
3D000 Nama katalog tidak valid Nama katalog yang ditentukan dalam StatementText tidak valid.
3F000 Nama skema tidak valid Nama skema yang ditentukan dalam StatementText tidak valid.
40001 Kegagalan serialisasi Transaksi digulung balik karena kebuntuan sumber daya dengan transaksi lain.
40003 Penyelesaian pernyataan tidak diketahui Koneksi terkait gagal selama eksekusi fungsi ini, dan status transaksi tidak dapat ditentukan.
42000 Kesalahan sintaks atau pelanggaran akses *StatementText berisi pernyataan SQL yang tidak dapat disiapkan atau berisi kesalahan sintaks.

Pengguna tidak memiliki izin untuk menjalankan pernyataan SQL yang terkandung dalam *StatementText.
42S01 Tabel dasar atau tampilan sudah ada *StatementText berisi pernyataan CREATE TABLE atau CREATE VIEW , dan nama tabel atau nama tampilan yang ditentukan sudah ada.
42S02 Tabel dasar atau tampilan tidak ditemukan *StatementText berisi pernyataan DROP TABLE atau DROP VIEW , dan nama tabel atau nama tampilan yang ditentukan tidak ada.

*StatementText berisi pernyataan ALTER TABLE , dan nama tabel yang ditentukan tidak ada.

*StatementText berisi pernyataan CREATE VIEW , dan nama tabel atau nama tampilan yang ditentukan oleh spesifikasi kueri tidak ada.

*StatementText berisi pernyataan CREATE INDEX , dan nama tabel yang ditentukan tidak ada.

*StatementText berisi pernyataan GRANT atau REVOKE , dan nama tabel atau nama tampilan yang ditentukan tidak ada.

*StatementText berisi pernyataan SELECT , dan nama tabel atau nama tampilan tertentu tidak ada.

*StatementText berisi pernyataan DELETE, INSERT, atau UPDATE , dan nama tabel yang ditentukan tidak ada.

*StatementText berisi pernyataan CREATE TABLE , dan tabel yang ditentukan dalam batasan (mereferensikan tabel selain yang sedang dibuat) tidak ada.

*StatementText berisi pernyataan CREATE SCHEMA , dan nama tabel atau nama tampilan tertentu tidak ada.
42S11 Indeks sudah ada *StatementText berisi pernyataan CREATE INDEX , dan nama indeks yang ditentukan sudah ada.

*StatementText berisi pernyataan CREATE SCHEMA , dan nama indeks yang ditentukan sudah ada.
42S12 Indeks tidak ditemukan *StatementText berisi pernyataan DROP INDEX , dan nama indeks yang ditentukan tidak ada.
42S21 Kolom sudah ada *StatementText berisi pernyataan ALTER TABLE , dan kolom yang ditentukan dalam klausa ADD tidak unik atau mengidentifikasi kolom yang ada dalam tabel dasar.
42S22 Kolom tidak ditemukan *StatementText berisi pernyataan CREATE INDEX , dan satu atau beberapa nama kolom yang ditentukan dalam daftar kolom tidak ada.

*StatementText berisi pernyataan GRANT atau REVOKE , dan nama kolom tertentu tidak ada.

*StatementText berisi pernyataan SELECT, DELETE, INSERT, atau UPDATE , dan nama kolom tertentu tidak ada.

*StatementText berisi pernyataan CREATE TABLE , dan kolom yang ditentukan dalam batasan (mereferensikan tabel selain yang sedang dibuat) tidak ada.

*StatementText berisi pernyataan CREATE SCHEMA , dan nama kolom tertentu tidak ada.
44000 DENGAN PELANGGARAN OPSI PEMERIKSAAN Argumen StatementText berisi pernyataan INSERT yang dilakukan pada tabel yang dilihat atau tabel yang berasal dari tabel yang dilihat yang dibuat dengan menentukan WITH CHECK OPTION, sehingga satu atau beberapa baris yang terpengaruh oleh pernyataan INSERT tidak akan ada lagi dalam tabel yang dilihat.

Argumen StatementText berisi pernyataan UPDATE yang dilakukan pada tabel yang dilihat atau tabel yang berasal dari tabel yang dilihat yang dibuat dengan menentukan WITH CHECK OPTION, sehingga satu atau beberapa baris yang terpengaruh oleh pernyataan UPDATE tidak akan ada lagi dalam tabel yang dilihat.
HY000 Kesalahan umum Terjadi kesalahan yang tidak ada SQLSTATE tertentu dan tidak ada SQLSTATE khusus implementasi yang ditentukan. Pesan kesalahan yang dikembalikan oleh SQLGetDiagRec di buffer *MessageText menjelaskan kesalahan dan penyebabnya.
HY001 Kesalahan alokasi memori Driver tidak dapat mengalokasikan memori yang diperlukan untuk mendukung eksekusi atau penyelesaian fungsi.
HY008 Operasi dibatalkan Pemrosesan asinkron diaktifkan untuk StatementHandle. Fungsi ini dipanggil, dan sebelum selesai dieksekusi, SQLCancel atau SQLCancelHandle dipanggil pada StatementHandle. Kemudian fungsi dipanggil lagi pada StatementHandle.

Fungsi ini dipanggil, dan sebelum selesai dieksekusi, SQLCancel atau SQLCancelHandle dipanggil pada StatementHandle dari utas yang berbeda dalam aplikasi multithread.
HY009 Penggunaan pointer null tidak valid (DM) *StatementText adalah pointer null.
HY010 Kesalahan urutan fungsi (DM) Fungsi eksekusi asinkron dipanggil untuk handel koneksi yang terkait dengan StatementHandle. Fungsi asinkron ini masih dijalankan ketika fungsi SQLExecDirect dipanggil.

(DM) SQLExecute, SQLExecDirect, atau SQLMoreResults dipanggil untuk StatementHandle dan dikembalikan SQL_PARAM_DATA_AVAILABLE. Fungsi ini dipanggil sebelum data diambil untuk semua parameter yang dialirkan.

(DM) Fungsi eksekusi asinkron (bukan yang ini) dipanggil untuk StatementHandle dan masih dijalankan ketika fungsi ini dipanggil.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations, atau SQLSetPos dipanggil untuk StatementHandle dan dikembalikan SQL_NEED_DATA. Fungsi ini dipanggil sebelum data dikirim untuk semua parameter atau kolom data-at-execution.
HY013 Kesalahan manajemen memori Panggilan fungsi tidak dapat diproses karena objek memori yang mendasar tidak dapat diakses, mungkin karena kondisi memori yang rendah.
HY090 String atau panjang buffer tidak valid (DM) Argumen TextLength kurang dari atau sama dengan 0 tetapi tidak sama dengan SQL_NTS.

Nilai parameter, yang diatur dengan SQLBindParameter, adalah pointer null, dan nilai panjang parameter bukan 0, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM, atau kurang dari atau sama dengan SQL_LEN_DATA_AT_EXEC_OFFSET.

Nilai parameter, yang diatur dengan SQLBindParameter, bukan penunjuk null; jenis data C SQL_C_BINARY atau SQL_C_CHAR; dan nilai panjang parameter kurang dari 0 tetapi tidak SQL_NTS, SQL_NULL_DATA, SQL_DATA_AT_EXEC, SQL_DEFAULT_PARAM, atau kurang dari atau sama dengan SQL_LEN_DATA_AT_EXEC_OFFSET.

Nilai panjang parameter yang terikat oleh SQLBindParameter diatur ke SQL_DATA_AT_EXEC; jenis SQL SQL_LONGVARCHAR, SQL_LONGVARBINARY, atau jenis data khusus sumber data yang panjang; dan jenis informasi SQL_NEED_LONG_DATA_LEN di SQLGetInfo adalah "Y".
HY105 Jenis parameter tidak valid Nilai yang ditentukan untuk argumen InputOutputType di SQLBindParameter SQL_PARAM_OUTPUT, dan parameternya adalah parameter input.
HY109 Posisi kursor tidak valid *StatementText berisi pernyataan pembaruan atau penghapusan yang diposisikan, dan kursor diposisikan (oleh SQLSetPos atau SQLFetchScroll) pada baris yang telah dihapus atau tidak dapat diambil.
HY117 Koneksi ditangguhkan karena status transaksi yang tidak diketahui. Hanya fungsi putuskan sambungan dan baca-saja yang diizinkan. (DM) Untuk informasi selengkapnya tentang status ditangguhkan, lihat Fungsi SQLEndTran.
HYC00 Fitur opsional tidak diimplementasikan Kombinasi pengaturan saat ini dari atribut pernyataan SQL_ATTR_CONCURRENCY dan SQL_ATTR_CURSOR_TYPE tidak didukung oleh driver atau sumber data.

Atribut pernyataan SQL_ATTR_USE_BOOKMARKS diatur ke SQL_UB_VARIABLE, dan atribut pernyataan SQL_ATTR_CURSOR_TYPE diatur ke jenis kursor yang drivernya tidak mendukung marka buku.
HYT00 Waktu habis kedaluwarsa Periode batas waktu kueri kedaluwarsa sebelum sumber data mengembalikan tataan hasil. Periode batas waktu diatur melalui SQLSetStmtAttr, SQL_ATTR_QUERY_TIMEOUT.
HYT01 Kesalahan waktu habis koneksi kedaluwarsa Periode batas waktu koneksi kedaluwarsa sebelum sumber data merespons permintaan. Periode batas waktu koneksi diatur melalui SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 Driver tidak mendukung fungsi ini (DM) Driver yang terkait dengan StatementHandle tidak mendukung fungsi.
IM017 Polling dinonaktifkan dalam mode pemberitahuan asinkron Setiap kali model pemberitahuan digunakan, polling dinonaktifkan.
IM018 SQLCompleteAsync belum dipanggil untuk menyelesaikan operasi asinkron sebelumnya pada handel ini. Jika panggilan fungsi sebelumnya pada handel mengembalikan SQL_STILL_EXECUTING dan jika mode pemberitahuan diaktifkan, SQLCompleteAsync harus dipanggil pada handel untuk melakukan pasca-pemrosesan dan menyelesaikan operasi.

Komentar

Aplikasi memanggil SQLExecDirect untuk mengirim pernyataan SQL ke sumber data. Untuk informasi selengkapnya tentang eksekusi langsung, lihat Eksekusi Langsung. Driver memodifikasi pernyataan untuk menggunakan bentuk SQL yang digunakan oleh sumber data lalu mengirimkannya ke sumber data. Secara khusus, driver memodifikasi urutan escape yang digunakan untuk menentukan fitur tertentu di SQL. Untuk sintaks urutan escape, lihat Urutan Escape di ODBC.

Aplikasi dapat menyertakan satu atau beberapa penanda parameter dalam pernyataan SQL. Untuk menyertakan penanda parameter, aplikasi menyematkan tanda tanya (?) ke dalam pernyataan SQL pada posisi yang sesuai. Untuk informasi tentang parameter, lihat Parameter Pernyataan.

Jika pernyataan SQL adalah pernyataan SELECT dan jika aplikasi bernama SQLSetCursorName untuk mengaitkan kursor dengan pernyataan, maka driver menggunakan kursor yang ditentukan. Jika tidak, driver akan menghasilkan nama kursor.

Jika sumber data dalam mode penerapan manual (memerlukan inisiasi transaksi eksplisit) dan transaksi belum dimulai, driver memulai transaksi sebelum mengirim pernyataan SQL. Untuk informasi selengkapnya, lihat Mode Penerapan Manual.

Jika aplikasi menggunakan SQLExecDirect untuk mengirimkan pernyataan COMMIT atau ROLLBACK , itu tidak akan dapat dioperasikan antara produk DBMS. Untuk menerapkan atau mengembalikan transaksi, aplikasi memanggil SQLEndTran.

Jika SQLExecDirect menemukan parameter data-at-execution, SQLExecDirect mengembalikan SQL_NEED_DATA. Aplikasi mengirimkan data menggunakan SQLParamData dan SQLPutData. Lihat SQLBindParameter, SQLParamData, SQLPutData, dan Mengirim Data Panjang.

Jika SQLExecDirect menjalankan pernyataan pembaruan, sisipkan, atau hapus yang dicari yang tidak memengaruhi baris apa pun di sumber data, panggilan ke SQLExecDirect akan mengembalikan SQL_NO_DATA.

Jika nilai atribut pernyataan SQL_ATTR_PARAMSET_SIZE lebih besar dari 1 dan pernyataan SQL berisi setidaknya satu penanda parameter, SQLExecDirect akan menjalankan pernyataan SQL sekali untuk setiap set nilai parameter dari array yang diarahkan oleh argumen ParameterValuePointer dalam panggilan ke SQLBindParameter. Untuk informasi selengkapnya, lihat Array Nilai Parameter.

Jika marka buku diaktifkan dan kueri dijalankan yang tidak dapat mendukung marka buku, driver harus mencoba memaksa lingkungan ke yang mendukung marka buku dengan mengubah nilai atribut dan mengembalikan SQLSTATE 01S02 (Nilai opsi berubah). Jika atribut tidak dapat diubah, driver harus mengembalikan SQLSTATE HY024 (nilai atribut tidak valid).

Catatan

Saat menggunakan pengumpulan koneksi, aplikasi tidak boleh menjalankan pernyataan SQL yang mengubah database atau konteks database, seperti pernyataan database USE di SQL Server, yang mengubah katalog yang digunakan oleh sumber data.

Contoh Kode

Lihat Program SQLBindCol, SQLGetData, dan Sampel ODBC.

Untuk informasi tentang Lihat
Mengikat buffer ke kolom dalam tataan hasil Fungsi SQLBindCol
Membatalkan pemrosesan pernyataan Fungsi SQLCancel
Menjalankan operasi penerapan atau pembatalan Fungsi SQLEndtran
Menjalankan pernyataan SQL yang disiapkan Fungsi SQLExecute
Mengambil beberapa baris data Fungsi SQLFetch
Mengambil blok data atau menggulir melalui kumpulan hasil Fungsi SQLFetchScroll
Mengembalikan nama kursor Fungsi SQLGetCursorName
Mengambil bagian atau semua kolom data Fungsi SQLGetData
Mengembalikan parameter berikutnya untuk mengirim data Fungsi SQLParamData
Menyiapkan pernyataan untuk eksekusi Fungsi SQLPrepare
Mengirim data parameter pada waktu eksekusi Fungsi SQLPutData
Mengatur nama kursor Fungsi SQLSetCursorName
Mengatur atribut pernyataan Fungsi SQLSetStmtAttr

Lihat Juga

Referensi API ODBC
File Header ODBC