Seri Kuliah ASP (16) Mengakses Database
Penulis:Eve Cole
Waktu Pembaruan:2009-05-30 19:58:46
ActiveX Data Objects (ADO) adalah teknologi yang mudah digunakan dan dapat diperluas untuk menambahkan akses database ke halaman Web. Anda dapat menggunakan ADO untuk menulis skrip yang ringkas dan ringkas untuk menyambung ke database yang sesuai dengan Open Database Connectivity (ODBC) dan sumber data yang sesuai dengan OLE DB. Jika Anda seorang pembuat skrip dengan pengetahuan tentang koneksi database, Anda akan menemukan bahwa pernyataan perintah ADO tidak rumit dan mudah untuk dikuasai. Demikian pula, jika Anda seorang pemrogram basis data berpengalaman, Anda akan menghargai kemandirian bahasa dan kemampuan pemrosesan kueri ADO yang canggih.
Membuat File DSN ODBC Sebelum membuat skrip database, Anda harus menyediakan cara bagi ADO untuk mencari, mengidentifikasi, dan berkomunikasi dengan database. Driver database menggunakan Nama Sumber Data (DSN) untuk mencari dan mengidentifikasi database spesifik yang sesuai dengan ODBC untuk meneruskan informasi dari aplikasi Web ke database. Biasanya, DSN berisi konfigurasi database, keamanan pengguna, dan informasi lokasi, dan dapat diperoleh sebagai tabel di kunci registri Windows NT atau sebagai file teks.
Dengan ODBC, Anda dapat memilih jenis DSN yang ingin Anda buat: pengguna, sistem, atau file. DSN pengguna dan sistem disimpan di registri Windows NT. Sistem DSN memungkinkan semua pengguna masuk ke server tertentu untuk mengakses database, sedangkan DSN pengguna membatasi koneksi database ke pengguna tertentu menggunakan kredensial keamanan yang sesuai. File DSN digunakan untuk mendapatkan tabel dari file teks, menyediakan akses ke banyak pengguna, dan dapat dengan mudah ditransfer dari satu server ke server lain dengan menyalin file DSN. Karena alasan ini, contoh dalam topik ini menggunakan file DSN.
Anda dapat membuat file berbasis DSN dengan membuka Control Panel dari menu Start Windows. Klik dua kali ikon ODBC, pilih halaman properti File DSN, klik Tambah, pilih driver database, dan klik Berikutnya. Ikuti petunjuk di bawah ini untuk mengkonfigurasi DSN untuk perangkat lunak database Anda.
Mengonfigurasi File DSN untuk Database Microsoft Access
Di kotak dialog Buat Sumber Data Baru, pilih Microsoft Access Driver dari kotak daftar, lalu klik Berikutnya.
Ketikkan nama file DSN Anda dan klik Berikutnya.
Klik Selesai untuk membuat sumber data.
Di kotak dialog Pengaturan ODBC Microsoft Access 97, klik Pilih. Pilih file database Microsoft Access (*.mdb) dan klik OK.
CATATAN Untuk alasan kinerja dan keandalan, kami sangat menyarankan agar Anda menggunakan Mesin Database Client-Server untuk mengkonfigurasi data yang didorong oleh aplikasi Web yang harus dapat diakses oleh lebih dari 10 pengguna secara bersamaan. Meskipun ASP dapat menggunakan database apa pun yang sesuai dengan ODBC, ASP dirancang dan diuji secara ketat untuk digunakan dengan database client-server, termasuk Microsoft SQL Server, Oracle, dan lainnya.
ASP mendukung database file bersama (seperti Microsoft Access atau FoxPro) sebagai sumber data yang valid. Meskipun beberapa contoh dalam dokumentasi ASP menggunakan database file bersama, kami menyarankan penggunaan mesin database tersebut hanya untuk skenario pengembangan atau penerapan terbatas. Basis data file bersama mungkin tidak cocok untuk basis data server-klien yang melayani aplikasi Web dengan permintaan tinggi dan berkualitas tinggi.
Konfigurasikan file database SQL Server DSN
Catatan Jika database berada di server jauh, hubungi administrator server untuk informasi konfigurasi tambahan; prosedur berikut ini menggunakan pengaturan default ODBC SQL Server, yang mungkin tidak berlaku untuk konfigurasi perangkat keras Anda.
Di kotak dialog Buat Sumber Data Baru, pilih SQL Server dari kotak daftar, lalu klik Berikutnya.
Ketikkan nama untuk file DSN dan klik Berikutnya.
Klik Selesai untuk membuat sumber data.
Ketikkan nama, ID login, dan kata sandi server yang menjalankan program layanan SQL.
Di kotak dialog Buat Sumber Data Baru untuk SQL Server, ketikkan nama server yang berisi database SQL Server di kotak daftar Server, lalu klik Berikutnya.
Pilih cara memverifikasi ID login Anda.
Jika Anda memilih otentikasi server SQL, masukkan ID login dan kata sandi, lalu klik Berikutnya.
Dalam kotak dialog Buat Sumber Data Baru untuk SQL Server, atur database default, driver untuk pengaturan prosedur tersimpan, dan identifikasi ANSI, lalu klik Berikutnya. (Untuk informasi lebih lanjut, klik Bantuan.)
Di kotak dialog (juga bernama Buat sumber data baru untuk SQL Server), pilih metode konversi karakter, lalu klik Berikutnya. (Untuk informasi lebih lanjut, klik Bantuan.)
Di kotak dialog berikutnya (juga bernama "Buat sumber data baru untuk SQL Server"), pilih pengaturan login.
Catatan Biasanya, Anda hanya dapat menggunakan log untuk men-debug masalah akses database.
Di kotak dialog Penyetelan ODBC Microsoft SQL Server, klik Uji Sumber Data. Jika DSN dibuat dengan benar, kotak dialog Hasil Tes akan menunjukkan bahwa tes berhasil diselesaikan.
Koneksi server SQL dan informasi keamanan Jika Anda mengembangkan aplikasi database ASP yang menyambung ke database SQL Server jarak jauh, Anda harus mempertimbangkan masalah berikut:
Opsi koneksi - Anda dapat memilih antara soket TCP/IP dan pipa bernama untuk mengakses database SQL Server jarak jauh. Saat menggunakan pipa bernama, karena pengguna database harus diautentikasi ke Windows NT sebelum sambungan dapat dibuat, pengguna dengan identitas akses SQL Server yang sesuai tetapi tanpa akun pengguna Windows NT di komputer mungkin ditolak aksesnya ke pipa bernama. Sebagai alternatifnya, koneksi menggunakan soket TCP/IP dapat dihubungkan langsung ke server database tanpa melalui komputer perantara menggunakan pipa bernama. Karena Anda dapat menyambung langsung ke server database menggunakan koneksi soket TCP/IP, pengguna dapat memperoleh akses melalui otentikasi SQL Server tanpa harus mengautentikasi melalui Windows NT.
Catatan Menggunakan soket TCP/IP dapat meningkatkan kinerja saat menyambung ke database jarak jauh.
Keamanan - Jika Anda menggunakan fitur keamanan terintegrasi atau campuran SQL Server, dan database SQL Server berada di server jarak jauh, Anda tidak dapat menggunakan pengakuan permintaan/respons Windows NT. Artinya, ID permintaan/respons Windows NT tidak dapat diteruskan ke komputer jarak jauh, tetapi hanya Otentikasi Dasar yang dapat digunakan, yang didasarkan pada informasi nama pengguna dan kata sandi pengguna.
Untuk informasi lebih lanjut tentang topik ini, lihat http://www.microsoft.com/sqlsupport/
Halaman beranda Dukungan Teknis Microsoft SQL Server.
Konfigurasikan file database Oracle DSN
Pertama-tama pastikan bahwa perangkat lunak pengguna Oracle telah diinstal dengan benar di komputer tempat DSN akan dibuat. Untuk informasi lebih lanjut, hubungi administrator server Anda atau lihat dokumentasi perangkat lunak database Anda.
Di kotak dialog Buat Sumber Data Baru, pilih Microsoft ODBC untuk Oracle dari kotak daftar, lalu klik Berikutnya.
Ketikkan nama untuk file DSN dan klik Berikutnya.
Klik Selesai untuk membuat sumber data.
Masukkan nama pengguna, kata sandi, dan nama server Anda, lalu klik OK.
Catatan File DSN memiliki ekstensi .dsn dan terletak di direktori ProgramsCommon FilesODBCData Sources.
Untuk informasi lebih lanjut tentang pembuatan berkas DSN, kunjungi situs Web Microsoft ODBC: http://microsoft.com/odbc/.
Menghubungkan ke Database Langkah pertama dalam mengakses informasi database adalah membuat koneksi ke sumber database. ADO menyediakan objek Connection yang dapat digunakan untuk membuat dan mengelola koneksi antara aplikasi dan database ODBC. Objek Connection memiliki berbagai properti dan metode yang bisa Anda gunakan untuk membuka dan menutup koneksi database dan membuat permintaan kueri untuk memperbarui informasi.
Untuk membuat koneksi database, pertama-tama Anda membuat instance dari objek Connection. Misalnya, skrip berikut membuat objek Connection dan kemudian membuka koneksi database:
<%
'Buat objek koneksi
Setel cn = Server.CreateObject("ADODB.Connection")
'Buka koneksi; string merujuk ke DSN
cn.Buka "FILEDSN=MyDatabase.dsn"
%>
Catatan String DSN tidak boleh berisi spasi, baik sebelum atau sesudah tanda sama dengan (=).
Dalam hal ini, metode Open objek Connection mereferensikan file berbasis DSN yang berisi informasi lokasi dan konfigurasi tentang database. Anda juga dapat secara eksplisit mereferensikan penyedia, sumber data, ID pengguna, dan kata sandi tanpa mereferensikan DSN.
Mengeksekusi Kueri dengan Objek Koneksi Menggunakan metode Eksekusi objek Koneksi, Anda bisa mengeluarkan kueri Structured Query Language (SQL) ke sumber database dan mengambil hasilnya. SQL adalah bahasa standar industri untuk berkomunikasi dengan database dan memiliki banyak perintah untuk mengambil dan memperbarui informasi.
Skrip berikut menggunakan metode Execute objek Connection untuk mengeluarkan kueri dalam tabel menggunakan perintah SQL INSERT, yang menyisipkan data ke dalam tabel database tertentu. Pada contoh berikut, skrip menyisipkan nama Jose Lugo ke dalam tabel database bernama Pelanggan.
<%
'Tentukan DSN berbasis file
strDSN = "FILEDSN=MyDatabase.dsn"
'Instansiasi objek Connection dan buka koneksi database
Setel cn = Server.CreateObject("ADODB.Connection")
cn.Buka strDSN
'Tentukan pernyataan SQL SELECT
strSQL = "MASUKKAN KE NILAI Pelanggan (Nama Depan, Nama Belakang) ('Jose','Lugo')"
'Gunakan metode Execute untuk mengeluarkan query SQL ke database
cn.Eksekusi(strSQL)
%>
Perhatikan bahwa file berdasarkan string jalur DSN tidak boleh berisi spasi sebelum dan sesudah tanda sama dengan (=).
Selain perintah SQL INSERT, Anda juga dapat menggunakan perintah SQL UPDATE dan DELETE untuk mengubah dan menghapus informasi database.
Menggunakan perintah SQL UPDATE, Anda bisa mengubah nilai setiap item dalam tabel database. Skrip berikut menggunakan perintah UPDATE untuk mengubah bidang Nama Depan setiap rekaman dalam tabel Pelanggan yang bidang Nama Belakangnya berisi nama belakang Smith menjadi Jeff.
<%
Setel cn = Server.CreateObject("ADODB.Connection")
cn.Buka "FILEDSN=MyDatabase.dsn"
cn.Jalankan "UPDATE Pelanggan SET FirstName = 'Jeff' WHERE LastName = 'Smith'"
%>
Untuk menghapus catatan tertentu dari tabel database, gunakan perintah SQL DELETE. Skrip berikut menghapus semua baris dengan nama belakang Smith dari tabel Pelanggan:
<%
Setel cn = Server.CreateObject("ADODB.Connection")
cn.Buka "FILEDSN=MyDatabase.dsn"
cn.Jalankan "HAPUS DARI Pelanggan WHERE LastName = 'Smith'"
%>
Catatan Anda harus berhati-hati saat menggunakan perintah SQL DELETE. Saat Anda menggunakan perintah DELETE tanpa klausa WHERE, ini akan menghapus semua baris dalam tabel. Pastikan untuk menyertakan klausa SQL WHERE untuk menentukan baris persis yang akan dihapus.
Menggunakan Objek Recordset untuk Memproses Hasil Meskipun objek Connection menyederhanakan tugas menghubungkan ke database dan melakukan query, objek Connection masih memiliki banyak kekurangan. Secara khusus, objek Connection yang mengambil dan menampilkan informasi database tidak dapat digunakan untuk membuat skrip, Anda harus mengetahui secara pasti perubahan apa yang ingin Anda buat pada database sebelum Anda dapat menggunakan kueri untuk mengimplementasikan perubahan tersebut;
Untuk mengambil data, memeriksa hasil, dan mengubah database, ADO menyediakan objek Recordset. Sesuai dengan namanya, objek Recordset memiliki sejumlah fitur yang bisa Anda gunakan untuk mengambil dan menampilkan sekumpulan baris database, atau "catatan", berdasarkan batasan kueri Anda. Objek Recordset menyimpan lokasi rekaman yang dikembalikan oleh kueri, memungkinkan Anda menelusuri hasilnya satu per satu.
Bergantung pada pengaturan properti PointerType objek Recordset, Anda dapat menggulir dan memperbarui rekaman. Penunjuk basis data memungkinkan Anda menemukan item tertentu dalam kumpulan catatan. Pointer juga digunakan untuk mengambil dan memeriksa catatan dan kemudian melakukan operasi berdasarkan catatan tersebut. Objek Recordset memiliki properti yang memungkinkan Anda mengontrol perilaku pointer secara tepat, meningkatkan kemampuan Anda untuk memeriksa dan memperbarui hasil. Misalnya, Anda bisa menggunakan properti CursorType dan CursorLocation untuk mengatur tipe pointer, mengembalikan hasilnya ke aplikasi klien (hasilnya biasanya disimpan di server database), dan menampilkan perubahan terakhir yang dibuat ke database oleh pengguna lain. .
Mengambil Catatan Aplikasi database yang sukses menggunakan objek Connection untuk membuat link dan objek Recordset untuk memproses data yang dikembalikan. Dengan "mengkoordinasikan" fungsionalitas spesifik dari dua objek, Anda dapat mengembangkan aplikasi database yang dapat melakukan hampir semua tugas pemrosesan data. Misalnya, skrip sisi server berikut menggunakan objek Recordset untuk menjalankan perintah SQL SELECT. Perintah SELECT mengambil sekumpulan informasi berdasarkan batasan kueri. Kueri juga berisi klausa SQL WHERE, yang digunakan untuk mempersempit cakupan kueri. Dalam contoh ini, klausa WHERE membatasi kueri ke semua rekaman yang berisi nama belakang Smith dalam tabel database Pelanggan.
<%
'Jalin koneksi dengan sumber data
strDSN = "FILEDSN=MyDatabase.dsn"
Setel cn = Server.CreateObject("ADODB.Connection")
cn.Buka strDSN
'Membuat instance objek Recordset
Setel rsCustomers = Server.CreateObject("ADODB.Recordset")
'Buka kumpulan data menggunakan metode Buka
' dan gunakan koneksi yang dibuat oleh objek Connection
strSQL = "PILIH Nama Depan, Nama Belakang DARI Pelanggan WHERE Nama Belakang = 'Smith'"
rsPelanggan.Buka strSQL, cn
'Siklus kumpulan rekor dan tampilkan hasilnya
' dan menambah posisi rekaman dengan metode MoveNext
Setel objFirstName = rsCustomers("Nama Depan")
Setel objLastName = rsCustomers("LastName")
Lakukan Sampai rsCustomers.EOF
Respon.Tulis objFirstName & " " & objLastName & "<BR>"
rsCustomers.MoveNext
Lingkaran
%>
Perhatikan bahwa dalam contoh sebelumnya, objek Connection digunakan untuk membuat koneksi database dan objek Recordset menggunakan koneksi tersebut untuk mengambil hasil dari database. Metode ini berguna ketika Anda perlu mengatur dengan tepat cara membuat tautan ke database. Misalnya, jika Anda perlu menentukan berapa lama menunggu sebelum upaya koneksi gagal, Anda perlu menggunakan objek Connection untuk mengatur properti. Namun, jika Anda hanya ingin membuat koneksi menggunakan properti koneksi default ADO, Anda harus menggunakan metode Open pada objek Recordset untuk membuat link:
<%
strDSN = "FILEDSN=MyDatabase.dsn"
strSQL = "PILIH Nama Depan, Nama Belakang DARI Pelanggan WHERE Nama Belakang = 'Smith'"
Setel rsCustomers = Server.CreateObject("ADODB.Recordset")
'Buka koneksi menggunakan metode Terbuka
'dan gunakan koneksi yang dibuat oleh objek Connection
rsPelanggan.Buka strSQL, strDSN
'Siklus kumpulan rekor, tampilkan hasilnya,
' dan menambah posisi rekaman dengan metode MoveNext
Setel objFirstName = rsCustomers("Nama Depan")
Setel objLastName = rsCustomers("LastName")
Lakukan Sampai rsCustomers.EOF
Respon.Tulis objFirstName & " " & objLastName & "<BR>"
rsCustomers.MoveNext
Lingkaran
%>
Saat menggunakan metode Open pada objek Recordset untuk membuat koneksi, objek Connection harus digunakan untuk memastikan keamanan koneksi.
Menggunakan Objek Perintah untuk Meningkatkan Kueri Dengan objek Perintah ADO, Anda dapat mengeksekusi kueri seperti yang Anda lakukan dengan objek Connection dan Recordset. Satu-satunya perbedaan adalah bahwa dengan objek Perintah Anda dapat menyiapkan, mengkompilasi, dan mengulangi kueri Anda pada database sumber menggunakan serangkaian nilai yang berbeda. Keuntungan mengompilasi kueri dengan cara ini adalah Anda dapat meminimalkan waktu yang diperlukan untuk berulang kali mengeluarkan permintaan yang diubah ke kueri yang ada. Alternatifnya, Anda dapat membiarkan sebagian kueri SQL tidak terdefinisi sebelum dieksekusi melalui opsi pada bagian variabel kueri Anda.
Kumpulan parameter objek Command menyelamatkan Anda dari kesulitan membuat ulang kueri setiap kali diterbitkan ulang. Misalnya, jika Anda perlu memperbarui informasi pasokan dan harga secara rutin dalam sistem Web berbasis inventaris, Anda dapat menentukan kueri sebelumnya sebagai berikut:
<%
'Buka koneksi menggunakan objek Koneksi Objek perintah
'tidak memiliki metode Terbuka untuk membuat koneksi
strDSN = "FILEDSN=MyDatabase.dsn"
Setel cn = Server.CreateObject("ADODB.Connection")
cn.Buka strDSN
'Instansiasi objek Perintah; gunakan properti ActiveConnection untuk melampirkan
'koneksi ke objek Command
Setel cm= Server.CreateObject("ADODB.Command")
Atur cm.ActiveConnection = cn
'Tentukan kueri SQL
cm.CommandText = "MASUKKAN KE DALAM Inventaris (Bahan, Kuantitas) NILAI (?, ?)"
'Simpan versi kueri yang telah disiapkan (atau dikompilasi sebelumnya) yang ditentukan dalam CommandText
'properti sebelum eksekusi pertama objek Perintah.
cm.Disiapkan = Benar
'Tentukan informasi konfigurasi parameter kueri
cm.Parameters.Tambahkan cm.CreateParameter("material_type",200, ,255 )
cm.Parameters.Tambahkan cm.CreateParameter("quantity",200, ,255 )
'Tentukan dan jalankan penyisipan pertama
cm("tipe_bahan") = "bola lampu"
cm("jumlah") = "40"
cm.Jalankan
'Tentukan dan jalankan penyisipan kedua
cm("material_type") = "sekring"
cm("jumlah") = "600"
cm.Jalankan
%>
Periksa contoh di atas dan Anda akan melihat bahwa skrip berulang kali membuat dan mengeluarkan kueri SQL dengan nilai berbeda tanpa mendefinisikan ulang dan mengirim ulang kueri ke sumber database. Mengompilasi kueri dengan objek Command juga menghindari masalah penggabungan variabel string dan tabel yang disebabkan oleh kueri SQL. Secara khusus, masalah yang terkait dengan pendefinisian tipe variabel string, tanggal, dan waktu dapat dihindari dengan menggunakan kumpulan Parameter dari objek Command. Misalnya, nilai kueri SQL yang berisi "'" dapat menyebabkan kueri gagal:
strSQL = "MASUKKAN KE NILAI Pelanggan (Nama Depan, Nama Belakang) ('Robert','O'Hara')"
Perhatikan bahwa nama belakang O'Hara mengandung "'", yang bertentangan dengan "'" yang digunakan untuk mewakili data dalam kata kunci SQL VALUES. Jenis masalah ini dapat dihindari dengan mengikat nilai kueri sebagai parameter objek Command.
Menggabungkan tabel HTML dan database Mengakses halaman Web yang berisi tabel HTML memungkinkan pengguna untuk menanyakan database dari jarak jauh dan mengambil informasi spesifik. Dengan menggunakan ADO Anda dapat membuat skrip yang sangat sederhana untuk mengumpulkan informasi tabel pengguna, membuat kueri basis data khusus, dan mengembalikan informasi kepada pengguna. Dengan menggunakan objek Permintaan ASP, Anda dapat mengambil informasi yang dimasukkan ke dalam tabel HTML dan menggabungkan informasi ini ke dalam pernyataan SQL. Misalnya, modul skrip berikut menyisipkan informasi yang disediakan oleh tabel HTML ke dalam tabel. Skrip ini menggunakan kumpulan Formulir objek Permintaan untuk mengumpulkan informasi pengguna.
<%
'Buka koneksi menggunakan objek Connection
'tidak memiliki metode Terbuka untuk membuat koneksi
strDSN = "FILEDSN=Database Saya.dsn"
Setel cn = Server.CreateObject("ADODB.Connection")
cn.Buka strDSN
'Membuat instance objek Perintah
'dan gunakan properti ActiveConnection untuk melampirkan
'koneksi ke objek Command
Setel cm= Server.CreateObject("ADODB.Command")
Atur cm.ActiveConnection = cn
'Tentukan kueri SQL
cm.CommandText = "MASUKKAN KE MySeedsTable (Jenis) NILAI (?)"
'Tentukan informasi konfigurasi parameter kueri
cm.Parameters.Tambahkan cm.CreateParameter("type",200, ,255 )
'Tentukan dan jalankan penyisipan
cm("tipe") = Permintaan("Jenis Benih")
cm.Jalankan
%>
Mengelola Koneksi Database Tantangan terbesar dalam merancang aplikasi database Web yang kuat, seperti aplikasi belanja online yang melayani ribuan pelanggan, adalah mengelola koneksi database dengan tepat. Membuka dan memelihara koneksi database, bahkan ketika tidak ada informasi yang ditransfer, dapat menghabiskan banyak sumber daya server database dan dapat menyebabkan masalah konektivitas. Aplikasi database Web yang dirancang dengan baik akan mendaur ulang koneksi database dan mampu mengkompensasi penundaan yang disebabkan oleh kemacetan jaringan.
Menyebabkan Timeout Koneksi Peningkatan aktivitas secara tiba-tiba dapat membuat server database menjadi sangat berat, sehingga secara signifikan meningkatkan waktu yang diperlukan untuk membuat koneksi database. Akibatnya, latensi koneksi yang berlebihan akan menurunkan kinerja database.
Dengan menggunakan ConnectionTimeout objek Connection, Anda dapat membatasi waktu tunggu aplikasi sebelum menghentikan upaya koneksi dan mengeluarkan pesan kesalahan. Misalnya, skrip berikut menyetel properti ConnectionTimeout untuk menunggu 20 detik sebelum membatalkan upaya koneksi:
Setel cn = Server.CreateObject("ADODB.Connection")
cn.ConnectionTimeout = 20
cn.Buka "FILEDSN=MyDatabase.dsn"
Properti ConnectionTimeout default adalah 30 detik.
Catatan Sebelum menggabungkan properti ConnectionTimeout ke dalam aplikasi database, pastikan bahwa penyedia koneksi dan sumber data mendukung properti tersebut.
Koneksi Bersama Aplikasi database web yang sering membuat dan memutus koneksi database dapat menurunkan kinerja server database. ASP mendukung manajemen koneksi yang efisien menggunakan fitur berbagi ODBC 3.5. Berbagi koneksi memelihara koneksi database terbuka dan mengelola pembagian koneksi tersebut di antara pengguna yang berbeda untuk mempertahankan kinerjanya dan mengurangi jumlah koneksi yang menganggur. Untuk setiap permintaan koneksi, kumpulan koneksi terlebih dahulu menentukan apakah ada koneksi menganggur di kumpulan. Jika ada, kumpulan koneksi mengembalikan koneksi daripada membuat koneksi baru ke database.
Jika Anda ingin driver ODBC Anda berpartisipasi dalam berbagi koneksi, Anda harus mengkonfigurasi driver database dan mengatur properti CPTimeout driver di registri Windows NT. Ketika ODBC terputus, koneksi dikumpulkan, bukan diputuskan. Properti CPTimeout menentukan berapa lama koneksi dipertahankan di kumpulan koneksi. Jika koneksi tetap berada di pool lebih lama dari pengaturan CPTimeout, koneksi akan ditutup dan dihapus dari pool. Nilai default untuk CPTimeout adalah 60 detik.
Anda dapat mengaktifkan pengumpulan koneksi untuk driver database ODBC tertentu dengan mengatur properti CPTimeout secara selektif dengan membuat kumpulan kunci registri sebagai berikut:
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INInama driverCPTimeout = batas waktu habis
(REG_SZ, satuan dalam hitungan detik)
Misalnya, kunci berikut menetapkan pengaturan batas waktu kumpulan koneksi driver SQL Server menjadi 180 detik (3 menit).
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INISQL ServerCPTimeout = 180
Catatan Secara default, server Web mengaktifkan kumpulan koneksi SQL Server dengan mengatur CPTimeout ke 60 detik.
Menggunakan koneksi lintas halaman Meskipun Anda dapat menggunakan kembali koneksi lintas halaman dengan menyimpan koneksi di objek Aplikasi ASP, menjaga koneksi tetap terbuka setiap saat tidak diperlukan dan tidak mengambil keuntungan penuh dari keuntungan pengumpulan koneksi. Jika banyak pengguna perlu menyambung ke aplikasi database ASP yang sama, pendekatan yang baik adalah menggunakan kembali koneksi database dengan menempatkan string koneksi lintas halaman di objek Aplikasi ASP. Misalnya, Anda dapat menentukan string koneksi dalam prosedur acara Application_OnStart dari file Global.asa, seperti yang ditunjukkan dalam skrip berikut:
Aplikasi.kunci
Aplikasi("ConnectionString") = "FILEDSN=MyDatabase.dsn"
Aplikasi.buka kunci
Kemudian, di setiap file ASP yang mengakses database, tulis:
<OBJECT RUNAT=ID Server=cn PROGID="ADODB.Connection"> </OBJECT>
Untuk membuat instance objek koneksi, gunakan skrip berikut:
cn.Buka Aplikasi("ConnectionString")
Untuk koneksi terbuka, Anda dapat menulis skrip berikut di akhir halaman untuk menutup koneksi:
cn.Tutup
Dalam situasi di mana satu pengguna perlu menggunakan kembali koneksi lintas halaman, lebih baik menggunakan koneksi objek Sesi daripada objek Aplikasi.
Menutup koneksi Jika Anda ingin memanfaatkan kumpulan koneksi dengan lebih baik, Anda harus menutup koneksi database sesegera mungkin. Secara default, koneksi akan dihentikan setelah skrip selesai dijalankan. Menutup koneksi ketika tidak lagi diperlukan akan mengurangi tuntutan pada server database dan membuat koneksi tersedia untuk pengguna lain.
Anda dapat menggunakan metode Close objek Connection untuk mengakhiri koneksi antara objek Connection dan database. Skrip berikut membuka koneksi dan kemudian menutupnya:
<% strDSN = "FILEDSN=MyDatabase.dsn"
Setel cn = Server.CreateObject("ADODB.Connection")
cn.Buka
cn.Tutup
%>