ASP Kuliah 6: ASP dan Database (1)
Penulis:Eve Cole
Waktu Pembaruan:2009-05-30 19:55:05
Pada kuliah sebelumnya, kita telah mempelajari konten dasar ASP. Dengan menggunakan pengetahuan ini secara fleksibel, Anda sudah dapat menggunakan ASP untuk membangun situs Web. Namun secara umum, website yang nyata dan lengkap tidak dapat dipisahkan dari database, karena sejumlah kecil data, seperti jumlah pengunjung halaman web, dapat disimpan dalam file teks, namun dalam aplikasi sebenarnya, data tersebut perlu disimpan. disimpan lebih dari ini. Sedikit demi sedikit, dan data ini sering kali saling terkait, menggunakan database untuk mengelola data ini dapat dengan mudah ditanyakan dan diperbarui. Ada banyak macam database, seperti: Fox database (.dbf), Access database (.mdb), Informix, Oracle dan SQL Server, dll. Dalam kuliah ini, saya akan menggunakan database Microsoft Access dan SQL Server 7.0 sebagai contoh untuk mengilustrasikan ASP Cara mengakses database. Mengapa memilih ASP? Statistik menunjukkan bahwa SQL Server 7.0 saat ini merupakan database tercepat dan paling hemat biaya, dan banyak situs web besar seperti www.8848.net, www.dell.com, www.hotbot.com dibuat menggunakan teknologi ASP, jadi ASP Itu adalah teknologi yang relatif mudah dikuasai dan sangat praktis. Anda harus mencoba mendekatinya, memahaminya, dan kemudian menggunakannya dengan percaya diri dan berani.
Persiapan apa saja yang harus dilakukan sebelum studi lebih lanjut:
1. Jika Anda belum pernah mengenal database, disarankan untuk menginstal Microsoft Access di Office terlebih dahulu dan mempelajari pengetahuan dasar tentang database.
2. Yang terbaik adalah menginstal Microsoft SQL Server 7.0. Setelah diinstal, dapat langsung digunakan tanpa pengaturan apa pun. Perhatikan bahwa versi DeskTop harus diinstal di Windows 9.x, sedangkan versi sebelum 7.0 hanya dapat diinstal di NT Server.
3. Konten yang dibahas selanjutnya memerlukan komponen yang disebut MDAC (Microsoft Data Access Components). Komponen ini sudah disertakan dalam ASP. Jika Anda ingin mengetahui lebih banyak tentang konten yang relevan, atau mengunduh versi terbaru, Anda dapat mengunjungi http://www. microsoft.com/data.
1. Membangun koneksi dengan database Sebelum memulai secara resmi, izinkan saya memperkenalkan ADO - Objek Data ActiveX. Jika Anda baru mengenal konsep ini, Anda hanya perlu menganggap ADO sebagai jembatan antara ASP dan database.
(1) Metode 1 untuk membuat koneksi dengan database Microsoft Access: Contoh wuf40.asp
<% @LANGUAGE = VBScript %>
<% ' wuf40.asp
Opsi Eksplisit
Redupkan Cnn, StrCnn
' 1 - Buat objek Koneksi
Setel Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("asp") & "NorthWind.mdb;"
'2 - Buka database menggunakan metode Open pada objek Connection
Cnn.Buka StrCnn
Respons.Tulis Server.MapPath("asp") & "NorthWind.mdb;"
Response.Tulis "Koneksi database berhasil: " & Cnn.State & "<br>"
'3 - Tutup koneksi menggunakan metode Close pada objek Connection
Cnn.tutup
Response.Write "Database telah ditutup:" & Cnn.State
'4 - Hapus objek Connection dari memori untuk melepaskan sumber daya
Setel Cnn = Tidak Ada
%>
Northwind.mdb adalah contoh database yang disertakan dengan Microsoft Access97. Biasanya terletak di direktori "Microsoft OfficeOfficeSamples". Misalnya, letakkan di C :InetPubhomeasp).
Di sini, metode MapPath dari objek Server mengubah jalur virtual yang ditentukan menjadi jalur file nyata, dan hasil akhirnya mirip dengan: C:InetPubhomeaspNorthwind.mdb.
Metode 2: Gunakan OLE DB untuk membuat koneksi Microsoft Access Bagian-bagian penting tercantum di bawah ini.
Setel Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Penyedia = Microsoft.Jet.OLEDB.4.0; Sumber Data = C:InetpubhomeaspNorthwind.mdb"
Cnn.Buka StrCnn
(2) Metode 1 untuk membuat sambungan dengan database SQL Server: Gunakan OLE DB untuk menyambung ke SQL Server untuk detailnya, lihat rutinitas wuf41.asp.
Setel Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Penyedia=sqlledb; ID Pengguna=sa; Kata Sandi=; Katalog Awal=pub; Sumber Data=ICBCZJP"
Cnn.Buka StrCnn
Tentukan nama database setelah Katalog Awal, dan nama mesin setelah Sumber Data (yaitu, nama komputer di Jaringan → Properti → Identitas) atau alamat IP (layanan DNS perlu diinstal).
Metode dua:
Setel Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={SQL Server};Server=ICBCZJP;UID=sa;PWD=;Database=pub"
Cnn.Buka StrCnn
Selain kedua cara di atas, tentunya Anda juga dapat menggunakan cara paling klasik yang diperkenalkan di banyak artikel dan materi: menggunakan ODBC untuk menghasilkan koneksi. Yaitu dengan terlebih dahulu membuat koneksi di "Sumber Data ODBC" di panel kontrol server Web, dan kemudian menggunakan string koneksi yang mirip dengan "StrCnn ="DSN=ADOCnn; UID = sa;PWD=;Database=pubs"" di ASP . Saya tidak akan memperkenalkannya secara detail di sini. Pertama, ini bukan metode terbaik. Kedua, materi lain telah memperkenalkan metode ini.
Selain itu, jika Anda tertarik, Anda dapat mengunduh wuf42.asp rutin untuk melihat cara menggunakan properti ConnectionTimeout dan ConnectionString dari objek Connection.
2. Database dimulai dari sini - pengambilan data yang sudah ada di database. Sekarang diasumsikan Anda sudah memiliki pengetahuan database paling dasar dan mengetahui cara menggunakan Microsoft Access untuk membuka tabel "Pengirim" di Northwind.mdb dan lihat. data yang disimpan dalam tabel. Sekarang pertanyaannya adalah bagaimana menggunakan ASP untuk menampilkan data ini di browser. Berikut tiga metode.
Pengingat khusus: Jika fondasi database Anda lemah, Anda hanya perlu bisa menggunakan cara kedua. Ingat!
Metode 1: Hanya gunakan objek Connection. Contoh wuf43.asp
<% @LANGUAGE = VBScript %>
<% ' wuf43.asp
Opsi Eksplisit
'Kalimat ini sangat penting, dapat memastikan bahwa data yang Anda lihat bukanlah data cache di klien.
'Tetapi data terbaru diperbarui kapan saja di sisi server
Respon. Kedaluwarsa = 0
'Bagian 1: Membangun koneksi
Redupkan Cnn, StrCnn
Setel Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Penyedia = Microsoft.Jet.OLEDB.4.0; Sumber Data = C:InetpubhomeaspNorthwind.mdb"
Cnn.Buka StrCnn
'Bagian 2: Gunakan metode Execute pada objek Connection untuk mendapatkan kumpulan data
Redupkan StrSQL, rsTest
'Berikut ini adalah pernyataan SQL (pernyataan kueri terstruktur), yang tidak akan diperkenalkan secara rinci dalam kuliah ini.' Disarankan untuk membaca buku ini. Penggunaan dasarnya relatif sederhana, dan Anda dapat mempelajarinya setelah Anda mempelajarinya.
'Kalimat ini berarti memilih semua data dari tabel pembawa
StrSQL = "Pilih * Dari pengirim"
Setel rsTest = Cnn.Execute(StrSQL)
%>
<HTML>
<TUBUH>
<% 'Bagian 3: Menampilkan kumpulan rekaman yang diperoleh di browser
'Ulangi ke akhir rekaman - tampilkan baris demi baris, rekaman demi rekaman
Lakukan Saat Bukan rsTest.EOF
'Dua baris berikut memiliki efek yang sama, yaitu rsTest("Shipper ID") setara dengan rsTest(0)
Response.Tulis rsTest("ID Pengirim") & " " & rsTest("Nama Perusahaan") & " " & rsTest("Telepon") & " " & "<BR>"
'Respon.Tulis rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
'Pindah ke rekaman berikutnya - kalimat ini tidak boleh dihilangkan, jika tidak maka akan jatuh ke dalam putaran tak terbatas
rsTest.MoveNext
Lingkaran
'Bagian 4: Membersihkan medan perang
Cnn.tutup
Setel rsTest = Tidak Ada: Setel Cnn = Tidak Ada
%>
</BODI>
</HTML>
Contoh ini sangat sederhana. Bagian ketiga menunjukkan data dalam gaya keluaran khas database. Anda bisa merujuk pada pengetahuan yang telah Anda pelajari sebelumnya dan menambahkan tabel dan warna untuk mempercantik hasil keluaran.
Pengguna non-junior dapat merujuk ke wuf44.asp untuk melihat penggunaan metode Execute secara lengkap.
Metode 2: Dengan membuat objek Recordset - ingatlah bahwa pemula hanya perlu menguasai metode ini.
Contoh: wuf45.asp, bagian lainnya sama dengan wuf43.asp, kuncinya terletak pada program bagian kedua.
'Bagian 2: Dapatkan kumpulan data dengan membuat objek RecordSet
Redupkan StrSQL, rsTest
'Buat objek Recordset
Setel rsTest = Server.CreateObject("ADODB.Recordset")
StrSQL = "Pilih ID operator, nomor telepon, nama perusahaan Dari operator Dimana nomor telepon = '(503) 555-9931'"
'Lampirkan objek Recordset ke koneksi Cnn
Setel rsTest.ActiveConnection = Cnn
'Buka recordset menggunakan metode Open pada objek Recordset
rsTest.Buka StrSQL
Sekarang mari kita lihat penggunaan lengkap metode Open pada objek Recordset, misalnya wuf48.asp.
<% @LANGUAGE = VBScript %>
<% ' wuf48.asp
Opsi Eksplisit
Respon. Kedaluwarsa = 0
%>
<!--#termasuk file="adovbs.inc"-->
<%
'Bagian 1: Membangun koneksi
Redupkan Cnn, StrCnn
Setel Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Penyedia = Microsoft.Jet.OLEDB.4.0; Sumber Data = C:InetpubhomeaspNorthwind.mdb"
Cnn.Buka StrCnn
'Bagian 2: Dapatkan kumpulan data dengan membuat objek RecordSet
Redupkan rsTest
Setel rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.Buka "Pengirim",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdTable
%>
<HTML>
<TUBUH>
<% 'Bagian 3: Menampilkan kumpulan rekaman yang diperoleh di browser
Lakukan Saat Bukan rsTest.EOF
Respon.Tulis rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
rsTest.MoveNext
Lingkaran
'Bagian 4: Membersihkan medan perang
rsTest.Tutup: Cnn.Tutup
Setel rsTest = Tidak Ada: Setel Cnn = Tidak Ada
%>
</BODI>
</HTML>
menganalisa:
1. Pertama lihat kalimat kuncinya:
rsTest.Buka "Pengirim",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdTable
Parameter pertama dapat berupa nama tabel (seperti: Freight Forwarder) atau pernyataan SQL (seperti wuf45.asp).
Parameter kedua menentukan koneksi saat ini.
Parameter ketiga menunjukkan CursorType, yang menentukan jenis kursor yang harus digunakan penyedia saat membuka Recordset. Ini menggunakan kursor yang hanya bergerak maju.
Parameter keempat menunjukkan LockType, yang menentukan jenis kunci (konkurensi) yang harus digunakan penyedia saat membuka Recordset. Tentukan hanya-baca di sini.
Parameter kelima berhubungan dengan parameter pertama. Jika parameter pertama dalam contoh ini adalah nama tabel, maka parameter kelima menggunakan adCmdTable. Jika parameter pertama adalah pernyataan SQL, parameter pertama adalah adCmdText, seperti:
rsTest.Buka "Pilih * Dari operator",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdText
Saya rasa kebanyakan orang tidak bisa memahami arti dari kelima parameter ini. Tidak masalah. Pada awalnya, salin saja dan gunakan sempurna saat kita terbiasa dengannya.
Kedua parameter CursorType dan LockType akan dijelaskan secara detail di bawah ini. Untuk mengambil data saja, Anda hanya perlu mengaturnya sesuai contoh ini.
2. Kelima parameter ini juga dapat diatur menggunakan properti objek Recordset, seperti wuf46.asp.
'Bagian 2: Dapatkan kumpulan data dengan membuat objek RecordSet
Redupkan rsTest
Setel rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.ActiveConnection = Cnn
rsTest.CursorType = hanya iklanOpenForward
rsTest.LockType = adLockReadOnly
rsTest.Buka "Pengirim", , , ,adCmdTable
3. Lihat lagi kalimat ini: <!--#include file="adovbs.inc"-->.
(1) Karena konstanta seperti adOpenForwardOnly, adLockReadOnly, dan adCmdText digunakan, file adovbs.inc perlu disertakan.
(2) File adovbs.inc umumnya terletak di direktori Program FilesCommon FilesSYSTEMADO. Anda dapat menyalinnya ke direktori server web saat ini (file ini juga disertakan dalam paket unduhan untuk kuliah ini) .
(3) Buka file ini dengan Notepad dan lihat, dan Anda akan mengerti mengapa file ini diperlukan.
Metode ketiga: Dengan memperkenalkan objek Command - ini harus dipelajari berdasarkan premis bahwa Anda mampu.
<% @LANGUAGE = VBScript %>
<% ' wuf47.asp
Opsi Eksplisit
Respon. Kedaluwarsa = 0
%>
<!--#termasuk file="adovbs.inc"-->
<%
'Bagian 1: Membangun koneksi
Redupkan Cnn, StrCnn
Setel Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Penyedia = Microsoft.Jet.OLEDB.4.0; Sumber Data = C:InetpubhomeaspNorthwind.mdb"
Cnn.Buka StrCnn
'Bagian 2: Dapatkan kumpulan data dengan membuat objek Command
Redupkan StrSQL, rsTest, cmdTest
'Buat objek Perintah
Setel cmdTest = Server.CreateObject("ADODB.Command")
StrSQL = "PILIH MAX(jumlah) DARI detail pesanan"
cmdTest.CommandText = StrSQL
cmdTest.CommandType = adCmdText 'Menunjukkan bahwa jenis perintah adalah pernyataan SQL
Setel cmdTest.ActiveConnection = Cnn
'Gunakan metode Execute pada objek Command untuk mendapatkan kumpulan data.
Setel rsTest = cmdTest.Jalankan
%>
<HTML>
<TUBUH>
<% 'Bagian 3: Menampilkan kumpulan rekaman yang diperoleh di browser
Lakukan Saat Bukan rsTest.EOF
Respon.Tulis rsTest(0) & "<BR>"
rsTest.MoveNext
Lingkaran
'Bagian 4: Membersihkan medan perang
rsTest.Tutup: Cnn.Tutup
Setel rsTest = Tidak Ada: Setel cmdTest=Tidak Ada: Setel Cnn = Tidak Ada
%>
</BODI>
</HTML>
Penggunaan objek Command akan dijelaskan pada pemrograman database yang mendalam di masa mendatang.
Kuliah ini terutama memperkenalkan cara terhubung ke database dan mengambil data database. Pemula pasti akan sedikit bingung Ingat, Anda hanya perlu mempelajari poin-poin pengetahuan berikut ini:
1. Cara menggunakan OLE DB untuk membuat koneksi dengan database Microsoft Access;
2. Cara menggunakan OLE DB untuk membuat koneksi dengan database Microsoft SQL Server;
3. Cara mengambil data dari database dengan membuat objek Recordset.