A continuación intentaremos acceder a los datos desde una base de datos sin conocer los nombres de la columna. Claramente, la mejor manera de utilizar datos en su base de datos es realizar un seguimiento de su esquema. El esquema es el diseño de datos en su base de datos. El concepto está mucho más allá del alcance de este sitio web, pero vale la pena mencionarlo. La mayoría de los buenos recursos en SQL también serán buenos recursos en la gestión de bases de datos. Un mejor esquema de base de datos conduce a un mejor código ASP.
Empiece:
A continuación se muestra el guión para la Lección 18.
<%@Language = "javascript"%> <!-metadata type = "typelib" file = "c:/programas/archivos comunes/sistema/ado/msado15.dll"-> <html> <body> <%var myConnect = "Provider = Microsoft.Jet.oledb.4.0; fuente de datos =";; myconnect += server.mappath ("//") myconnect += "//globalscripts//htmlcolor.mdb;";var conectedObj = server.createObject (" adodb.connection "); var rs = server.createObject (" adodb.cordet "); var sql =" select * de colorchart; ";"; ";"; ";"; ";"; ";"; ";"; "; (myconnect); rs.open (sql, conectionObj, adopEenForDoRonly, adlockReadonly, adcmdText); var récord = rs.fields.count; var x = 0; var getFieldNames = false; respuesta.write ("<table border =/" 1/"celular =/" 0/">/r"); while (rs.eOf) RecordCount) {x = 0} Response.Write ("<tr>"); if (! GetFieldNames) {while (x <= RecordCount-1) {Response.write ("<th>" + rs.fields (x) .name + "</th>"); x ++;} getFieldNames = true; x = 0; Response.write RecordCount-1) {Response.Write ("<TD>" + Rs.fields (x) .Value + "</td>"); x ++;} Response.Write ("</tr>/r"); rs.MoVENEXT ();} Response.write ("</table>/r"); rs.close (); ConnectObj.Close (); RS = NETOBJ nulo;%> </body> </html>Haga clic aquí para ejecutar el script en una nueva ventana.
No creo que esto necesite mucho explicar. El
Otra forma:
Una forma potencialmente más elegante de lograr este mismo objetivo es usar el método ADO GetRows . Devuelve una matriz multidimensional que contiene los datos del conjunto de registros. ¡ESPERAR! ¿No son las matrices JavaScript léxicas (y planas)? Sí. Podemos emular matrices multidimensionales, pero en realidad son planas. Entonces, es un no-go en los Getrows ... a menos que hagamos algo realmente creativo.
<%@Language = "javascript"%> <!-metadata type = "typelib" file = "c:/programas/archivos comunes/sistema/ado/msado15.dll"-> <html> <body> <%var myConnect = "Provider = Microsoft.Jet.oledb.4.0; fuente de datos =";; myconnect += server.mappath ("//") myconnect += "//globalscripts//htmlcolor.mdb;";var conectedObj = server.createObject (" adodb.connection "); var rs = server.createObject (" adodb.cordet "); var sql =" select * de colorchart; ";"; ";"; ";"; ";"; ";"; ";"; "; (myconnect); rs.open (SQL, ConnectObj, AdoptForWardOnly, AdlockReadonly, ADCMDText); var myArray = rs.getrows (). toArray (); respuesta.write ("vamos los resultados de myArray como javascript"); Respuesta.write ("Wees (lo cual es plano). <BR>/; "<br> <br> /r")rs.movefirst();var myvBarray = new VBarray (rs.getrows ()) Response.Write (" Podemos usar el <i> nuevo VBARRAY </I> Constructor y el ") Respuesta.write (" <i> getItem () </i> Method. Por ejemplo: myvbArray.getitem (1,1) ")") ")" " + myvBarray.getItem (1,1) +" <br> <br> /r")Response.write("now hagamos algo útil. <br> /r")Response.write("<Table Border = 1 CellPadding = 0 CellSpacing = 0> ") Respuesta. Visualización ("/R <Tr> ") para (var x = 0; x <= myarray.l longitud. x ++) {Response.Write ("<Td>"+myArray [x]+"</td>") if ((x+1)%rs.fields.count == 0) {Response.Write ("</tr>/r <tr>")}} Response.write ("</tr>/r") Response.write ("</table>") Rs.clase (); NULL; ConnectOBJ.Close (); ConnectObj = NULL;%> </body> </html>