Le retour du jeu d'enregistrements à partir de la fonction en ASP classique

Je suis à une perte sur la façon dont je peux retourner un jeu d'enregistrements lisibles à partir d'une fonction en ASP classique.

C'est ce que je suis venu avec, mais cela ne fonctionne pas:

Response.Clear
Response.CharSet = "utf-8"
Response.ContentType = "text/plain"

Dim Count

Set Count = Test

Response.Write Count.Fields(0).Value


Function Test

    Dim Query, Connection, Command, Recordset

    Query = " blah blah blah "

    Set Connection = Server.CreateObject("ADODB.Connection")
    Set Command = Server.CreateObject("ADODB.Command")
    Set Recordset = Server.CreateObject("ADODB.Recordset")

    Connection.ConnectionString = "blah blah blah"
    Connection.Open

    Set Command.ActiveConnection = Connection
    Command.CommandText = Query

    Set Recordset = Command.Execute

    Set Test = Recordset

    Recordset.Close
    Connection.Close

    Set Recordset = Nothing
    Set Command = Nothing
    Set Connection = Nothing

End Function

La Response.Write Count.Fields(0).Value ligne les rendements de la Item cannot be found in the collection corresponding to the requested name or ordinal. erreur.

De le remplacer avec Response.Write Count.Status - je obtenir le Operation is not allowed when the object is closed. erreur.

Ajoutant Count.Open donne la The connection cannot be used to perform this operation. It is either closed or invalid in this context. erreur.

Modifier après la Marque B réponse:

Je l'ai déjà regardé les jeux d'enregistrements déconnecté mais je ne sais pas comment les utiliser dans mon exemple: chaque tutoriel flux de la requête directement dans le jeu d'enregistrements avec Recordset.Open, mais je suis en utilisant des requêtes paramétrées, et même d'essayer de nombreuses façons, je ne pouvais pas obtenir le même résultat lorsqu'il y a une ADODB.Command dans le chemin.

Que dois-je faire?

Merci d'avance.

Voici la solution basée sur Eduardo Molteni réponse:

La fonction qui interagit avec la base de données:

Function Test

    Dim Connection, Command, Recordset

    Set Connection = Server.CreateObject("ADODB.Connection")
    Set Command = Server.CreateObject("ADODB.Command")
    Set Recordset = Server.CreateObject("ADODB.Recordset")

    Connection.ConnectionString = "blah blah blah"
    Connection.Open

    Command.ActiveConnection = Connection
    Command.CommandText = "blah blah blah"

    Recordset.CursorLocation = adUseClient
    Recordset.Open Command, , adOpenForwardOnly, adLockReadOnly

    Set Recordset.ActiveConnection = Nothing

    Set Test = Recordset

    Connection.Close

    Set Recordset = Nothing
    Set Command = Nothing
    Set Connection = Nothing

End Function

Le code qui appelle la fonction:

Response.Clear
Response.CharSet = "utf-8"
Response.ContentType = "text/plain"

Dim Recordset

Set Recordset = Test

Response.Write Recordset.Fields(0).Value

Recordset.Close

Set Recordset = Nothing
Votre dernier morceau de code est manquant Response.CodePage = 65001.

OriginalL'auteur Albireo | 2010-10-01