Accélération du script ADO par GetString()

Utilisez la méthode GetString() pour accélérer votre script ASP (au lieu de Response.Write en mode multiline).

Exemple

Utilisation de GetString()
Comment utiliser GetString() pour afficher les données du jeu de résultats dans un tableau HTML.

Response.Write en mode multiline

L'exemple suivant montre une méthode pour afficher une requête de base de données dans un tableau HTML :

<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
%>
<table border="1" width="100%">
<%do until rs.EOF%>
   <tr>
      <td><%Response.Write(rs.fields("Companyname"))%></td>
      <td><%Response.Write(rs.fields("Contactname"))%></td>
   </tr>
<%rs.MoveNext
loop%>
</table>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>

Pour une grande requête, cela augmente le temps de traitement du script, car le serveur doit traiter un grand nombre de commandes Response.Write.

La solution consiste à créer la chaîne complète, de <table> à </table>, puis à l'envoyer - en utilisant une seule commande Response.Write.

Méthode GetString()

La méthode GetString() nous permet de visualiser toutes les chaînes de caractères en utilisant une seule commande Response.Write, sans nécessiter de code do..loop ni de tests de conditions pour vérifier si l'ensemble d'enregistrements est au EOF.

Syntaxe

str = rs.GetString(format, rows, coldel, rowdel, nullexpr)

Pour créer un tableau HTML à partir des données d'un ensemble d'enregistrements, nous avons besoin uniquement des trois paramètres suivants (tous les paramètres sont optionnels) :

  • coldel - Caractère délimitant les colonnes en HTML
  • rowdel - Caractère délimitant les lignes en HTML
  • nullexpr - HTML utilisé lorsque la colonne est vide

Remarque :La méthode GetString() est une caractéristique de ADO 2.0. Vous pouvez télécharger ADO 2.0 à partir de l'adresse suivante :http://www.microsoft.com/data/download.htm

Dans l'exemple suivant, nous allons utiliser la méthode GetString() pour stocker un ensemble de enregistrements sous forme de chaîne de caractères :

<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
str=rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ")
%>
<table border="1" width="100%">
  <tr>
    <td><%Response.Write(str)%></td>
  </tr>
</table>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>

La variable str contient une chaîne avec toutes les colonnes et les lignes retournées par la requête SELECT. Entre chaque colonne, il y a </td><td> et entre chaque ligne, il y a </td></tr><tr><td>. De cette manière, en utilisant Response.Write une seule fois, nous obtenons le HTML nécessaire.