Di bawah ini kami akan mencoba mengakses data dari database tanpa mengetahui nama kolom. Jelas cara terbaik untuk memanfaatkan data dalam database Anda adalah dengan melacak skema Anda. Skema adalah tata letak data dalam database Anda. Konsepnya jauh di luar ruang lingkup situs web ini, tetapi perlu disebutkan. Sebagian besar sumber daya yang baik di SQL juga akan menjadi sumber daya yang baik pada manajemen basis data. Skema database yang lebih baik mengarah pada kode ASP yang lebih baik.
Mulai:
Di bawah ini adalah skrip untuk pelajaran 18.
<%@Language = "javascript"%> <!-metadata type = "typelib" file = "c:/file program/file umum/sistem/ado/msado15.dll"-> <html> <body> <%var myconnect = "provider = microsoft.jet.oledb.4.0; data sumber ="; MyConnect += server.mappath ("//") myConnect += "//globalscripts//htmlcolor.mdb;";var connectObj = server.createObject (" adodb.connection "); var rs = server.createObject (" adodb.recordset "); var rs = server = createObject (" adodb.recordset "); (MyConnect); rs.open (sql, connectObj, adoptForwardonly, adlockreadonly, adcmdtext); var recordcount = rs.fields.count; var x = 0; var getfieldnames = false; response.write ("<tabel border =/" 1/"cellspacing =/" 0/"0/" while ("<Table Border =/" 1/"CellSpacing =/" 0/"0/" 0/"while) (while (tabel =/" 1/"cellspacing =/" 0/"0/" 0/") (while" while (tabel =/"1/" cellSpacing =/"0/" 0/"0/" while) (while (Table Border =/"1/" CellSpacing =/"0/" 0/" RecordCount) {x = 0} response.write ("<tr>"); if (! getFieldNames) {while (x <= recordcount-1) {response.write ("<tm RecordCount-1) {response.write ("<td>" + rs.fields (x) .value + "</td>"); x ++;} response.write ("</tr>/r"); rs.movenext ();} response.write ("</table>/r"); rs.movenext ();} response.write ("</table>/r"); rs.close (); null;%> </body> </html>Klik di sini untuk menjalankan skrip di jendela baru.
Saya tidak berpikir ini perlu banyak dijelaskan. The
Cara lain:
Cara yang berpotensi lebih elegan untuk mencapai tujuan yang sama ini adalah dengan menggunakan metode ADO Getrows . Ini mengembalikan array multi-dimensi yang berisi data recordset. TUNGGU! Bukankah javascript array leksikal (dan datar)? Ya. Kita dapat meniru array multi-dimensi, tetapi pada kenyataannya mereka datar. Jadi itu tidak perlu di getrows ... kecuali kita melakukan sesuatu yang sangat kreatif.
<%@Language = "javascript"%> <!-metadata type = "typelib" file = "c:/file program/file umum/sistem/ado/msado15.dll"-> <html> <body> <%var myconnect = "provider = microsoft.jet.oledb.4.0; data sumber ="; MyConnect += server.mappath ("//") myConnect += "//globalscripts//htmlcolor.mdb;";var connectObj = server.createObject (" adodb.connection "); var rs = server.createObject (" adodb.recordset "); var rs = server = createObject (" adodb.recordset "); (MyConnect); rs.open (sql, connectObj, adoptForwardonly, adlockreadonly, adcmdtext); var myArray = rs.getrows (). toarray (); response.write ("mari kita lihat hasil myarray sebagai javascript"); response.write ("sees mereka datar). <br> /r"); response.write(mYarray + "<br> <br> /r")rs.movefirst();var myvbarray = vbarray baru (rs.getrows () <) (" contoh "." myvbarray.getItem (1,1) ") response.write (" return " + myvbarray.getItem (1,1) +" <br> <br> /r")response.write(" sekarang mari kita buat sesuatu yang berguna. <br> /r")response.write(" <table border = 1 cellpadding = 0 cellpadding 0 cellpadding 0: 0 cellpadding 0: 0 cellpadding 0: 0 cellpadding = 0 cellpadding 0 CellSpacing = 0> ") response.write ("/r <tr> ") untuk (var x = 0; x <= myarray.length-1; x ++) {response.write (" <td> " + myArray [x] +" </td> ") jika ((x+1)%RS.Fields.Count==0){Response.Write("</TR>/r<TR>")}}Response.Write("</TR>/r")Response.Write("</TABLE>")RS.Close();RS = null;ConnectObj.Close();ConnectObj = null;%></BODY></HTML>