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.
Vous devez vous connecter pour publier un commentaire.
Ressemble à des noms de paramètres sont mal formés. Essayez de changer l'affectation de strCmd1 à:
Puis changer l'affectation de param1 à:
OK.. le problème est résolu
J'ai déplacé les deux dernières lignes après la fin si
ci-dessus avant le ELSE
oui, il était si simple.. une logique de mis-flux, m'a signalé par mon ami qui a lu mon problème ici, et m'a orienté dans la bonne direction ailleurs ..
Grâce dmarietta 🙂