De nombreux programmeurs ASP ont l'expérience de l'exécution de requêtes de base de données, puis de l'affichage des résultats de la requête dans des tableaux HTML. Habituellement, nous faisons ceci :
| Voici une citation : <% 'Créer une connexion/un jeu d'enregistrements 'Remplir les données dans l'objet Recordset %> <TABLE> <% Faire pendant que ce n'est pas rs.EOF %> <TR> <TD ><%=rs(Field1)% ></TD> <TD ><%=rs(Field2)% ></TD> . </TR> <% rs.MoveNext Boucle %> </TABLE> |
S'il y a beaucoup de résultats de requête, le serveur mettra beaucoup de temps à interpréter votre script ASP car il y a de nombreuses instructions Response.Write à traiter si vous mettez tous les résultats de sortie dans une longue chaîne (de à). , alors le serveur n'a besoin d'interpréter l'instruction Response.Write qu'une seule fois et cela sera beaucoup plus rapide. Certains gars compétents de Microsoft ont transformé l'idée en réalité (notez qu'il s'agit d'une fonctionnalité uniquement disponible dans ADO 2.0 et supérieur. Si vous utilisez toujours la version précédente, veuillez passer à la dernière version)
Avec la méthode GetString, nous ne pouvons utiliser qu'un seul Response.Write pour afficher toutes les sorties. C'est comme une boucle DO... LOOP qui peut déterminer si le Recordset est EOF.
L'utilisation de GetString est la suivante (tous les paramètres sont facultatifs) :
String = recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
Pour générer un tableau HTML à partir des résultats du Recordset, il suffit de s'intéresser à 3 des 5 paramètres de GetString :
ColumnDelimiter (le code HTML qui sépare les colonnes du jeu d'enregistrements), RowDelimiter (le code HTML qui sépare les lignes du jeu d'enregistrements) et NullExpr (le code HTML qui doit être généré lorsque l'enregistrement actuel est vide). Comme vous pouvez le voir dans l'exemple de génération d'un tableau HTML ci-dessous, chaque colonne est séparée par... et chaque ligne est séparée par.... Exemple de code :
| Voici une citation : <%@ LANGUAGE=VBSCRIPT %> <% Option Explicite 'Bonne technique de codage 'Établir la connexion à la base de données Connexion faible Définir conn = Server.CreateObject (ADODB.Connection) conn.Open DSN=Northwind; 'Créer un jeu d'enregistrements Dimrs Définir rs = Server.CreateObject (ADODB.Recordset) rs.Open SELECT * FROM table1, connexion 'Stockez notre seule grande chaîne Dim strTable strTable = rs.GetString(,,</td><td>,</td></tr><tr><td> , ) %> <HTML> <CORPS> <TABLE> <TR><TD> <% Réponse.Write(strTable) %> </TR></TD> </TABLE> </CORPS> </HTML> <% 'Nettoyage ! rs.Fermer Setrs=Rien conn.Fermer Définir la connexion = Rien %> |
La chaîne strTable est utilisée pour stocker le code du tableau HTML que nous avons généré à partir des résultats de SELECT * FROM table1.
Il y aura du code HTML entre chaque colonne du tableau HTML, et le code HTML entre chaque ligne sera. La méthode GetString affichera le code HTML correct et le stockera dans strTable, de sorte que nous n'aurons besoin que d'une seule ligne de Response.Write pour afficher. L'ensemble de données Tous les enregistrements de .Regardons un exemple simple, en supposant que les résultats de notre requête renvoient les lignes et colonnes suivantes :
| Voici une citation : Col1 Col2 Col3 Rangée 1 Bob Smith 40 Rangée 1 Ed Frank 43 Rangée 1 Sue Void 42 |
La chaîne renvoyée par l'instruction GetString sera :
| Voici une citation : Bob</td ><td >Smith</td ><td >40</td ><td ></td ></tr ><tr >< td >Éd... |
Cette chaîne semble longue et désordonnée, mais il s'agit du code HTML souhaité. (Notez que nous le placerons après dans le code HTML écrit à la main. En effet, notre chaîne de formatage ne contient pas les chaînes requises pour l'en-tête et le pied de page de ces tableaux.)