Rumah >pembangunan bahagian belakang >C++ >Adakah Perintah Parameter OleDbCommand Penting Apabila CommandType ialah Teks?

Adakah Perintah Parameter OleDbCommand Penting Apabila CommandType ialah Teks?

DDD
DDDasal
2024-12-30 17:46:12171semak imbas

Does OleDbCommand Parameter Order Matter When CommandType is Text?

Tempahan dan Keutamaan Parameter OleDbCommand: Kes Jangkaan Tidak Sejajar

Apabila membina pertanyaan menggunakan OleDbCommand, adalah penting untuk memastikan susunan parameter dengan tepat mengikuti urutan dalam pernyataan SQL. Salah tanggapan biasa berkisar pada andaian bahawa parameter yang dinamakan menghapuskan keperluan ini. Walau bagaimanapun, seperti yang didedahkan oleh sesi penyahpepijatan yang mendalam, OleDbCommand tidak mempunyai sokongan untuk parameter yang dinamakan apabila CommandType ditetapkan kepada Teks.

Dalam contoh yang diberikan:

SELECT * FROM tblSomeThing WHERE id = @id AND debut = @dtDebut AND fin = @dtFin

Parameter ditambahkan dalam susunan berikut:

cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;

Walau bagaimanapun, tiada keputusan dikembalikan, menunjukkan ketidakkonsistenan. Setelah menyusun semula parameter agar sepadan dengan pernyataan SQL, pertanyaan berjaya dilaksanakan:

cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;

Ini sejajar dengan dokumentasi di http://msdn.microsoft.com/en-us/library/system.data. oledb.oledbcommand.parameters.aspx, yang menyatakan dengan jelas bahawa OleDbCommand tidak menyokong parameter bernama untuk pernyataan SQL dalam mod Teks. Sebaliknya, ruang letak tanda soal (?) mesti digunakan dan susunan objek OleDbParameter dalam koleksi mestilah sepadan dengan peletakannya dalam teks arahan.

Atas ialah kandungan terperinci Adakah Perintah Parameter OleDbCommand Penting Apabila CommandType ialah Teks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn