ADODB.Jeu d'enregistrements erreur "800a0bb9' Arguments sont de type incorrect, sont hors de la plage acceptable, ou qui sont en conflit les uns avec les autres

J'ai un vieux site web à l'aide d'ASP Classique et j'ai été récemment demandé de supprimer une attaque par injection SQL menace. Je suis en train d'utiliser des requêtes paramétrées, mais on a tous un peu au-dessus de ma tête.

voici mon code:

<% whatSector = request.querystring("whatSector")%>

    <%  adoCon.Open cString
        dim rs_client
        if whatSector="" then
    strSQL="SELECT * FROM clients ORDER BY alphabet"
    else

    Set objCommand = Server.CreateObject("ADODB.COMMAND")

    strCmd1 = "SELECT * FROM clients Where industrySector=? ORDER BY alphabet"

    Set objCommand.ActiveConnection = adoCon
        objCommand.CommandText = strCmd1
        objCommand.CommandType = adCmdText

    Set param1 = objCommand.CreateParameter ("whatSector",adVarChar, adParamInput, 50)
    param1.value = whatSector
    objCommand.Parameters.Append(param1)
    Set rs_client = objCommand.Execute()

    end if 
    set rs_client = server.CreateObject("ADODB.Recordset")
    rs_client.open strSQL,adoCon

%>

Cela semblait fonctionner pour moi sur une autre page (sauf pour certaines raisons, j'ai dû enlever un recordCount chose que j'ai utilisé pour la pagination), mais j'obtiens le message d'erreur suivant sur cette page:

ADODB.Jeu d'enregistrements erreur "800a0bb9'

Arguments sont de type incorrect, sont hors de la plage acceptable, ou qui sont en conflit les uns avec les autres.

/clients/clientspotlight_list.asp, ligne 50

Ligne 50 - est de la rs_client.ouvert à la fin de l'extrait de code ci-dessus.

J'ai utilisé

    <!-- METADATA TYPE="TypeLib" NAME="Microsoft ADO Type Library" UUID="{00000205-0000-0010-8000-00AA006D2EA4}" -->

pour adovbs.inc.

InformationsquelleAutor 5tratus | 2013-11-12