🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: dk.edb.database
Article #20

Re: expects the parameter '@P2', which was not supplied

#20
From: Arne Vajhøj
Date: Thu, 08 Mar 2012 20:27
101 lines
4742 bytes
On 3/8/2012 2:36 PM, Leif Neland wrote:
> Den 08-03-2012 17:36, Arne Vajh�j skrev:
>> On 3/8/2012 11:01 AM, Leif Neland wrote:
>>> jeg mener jeg g�r dette efter bogen, men det virker ikke.
>>> Begge parametre (sessid og productID) findes.
>>>
>>> set oProd1=Server.CreateObject("ADODB.command")
>>> with oProd1
>>> .ActiveConnection = Record
>>> sql="select * from t_basket where basketSession=? and prodID=?"
>>> .CommandText = sql
>>> .CommandType = 1 ' adCmdText
>>> .parameters.Append
>>> .CreateParameter("ses",adChar,adParamInput,50,sessid)
>>> .parameters.Append
>>> .CreateParameter("prod",adInteger,adParamInput,,productID)
>>> .prepared = true
>>> set rsSeKurv= .execute
>>> end with
>>>
>>> Jeg f�r fejlen.
>>> The parameterized query '(@P1 char(50),@P2 int)select * from t_basket
>>> where
>>> basketSession' expects the parameter '@P2', which was not supplied.
>>>
>>> Bytter jeg om p� de to parametre i b�de sql og parameters.Append, er det
>>> _stadig_ @P2, der mangler.
>>> The parameterized query '(@P1 int,@P2 char(50))select cnt from t_basket
>>> where prodID=@P1 ' expects the parameter '@P2', which was not supplied.
>>>
>>> Jeg mener at fejlen i virkeligheden betyder noget andet end man skulle
>>> tro,
>>> men jeg kan ikke huske det...
>>
>> Jeg forst�r ikke den kode.
>>
>> "select * from t_basket where basketSession=? and prodID=?"
>> CreateParameter("ses",adChar,adParamInput,50,sessid)
>> CreateParameter("prod",adInteger,adParamInput,,productID)
>>
>> hvordan skal "?" - "ses" og "?" - "prod" korreleres?
>>
>> (ODBC vil goere det p� position, men jeg formoder
>> at du bruger OLE DB ikke ODBC)
>>
>> Et eksempel fra lageret:
>>
>> "SELECT COUNT(*) AS n FROM myusers WHERE un = @un AND pw = @pw"
>> CreateParameter("@un", adVarChar, adParamInput, 32)
>> CreateParameter("@pw", adVarChar, adParamInput, 32)
>>
>> hvor jeg bruger samme navn i SQL og i parameters.
>>
>> (hvis du bruger ODBC s� position bruges, s� har jeg lidt
>> mistanke til den manglende l�ngde angivelse i den anden
>> parameter)
>>
>
> Der skal ikke angives l�ngde p� en adInteger,
>
> Om jeg bruger
> select * from t_basket where basketSession=? and prodID=?"
> eller
> select * from t_basket where prodID=?" and basketSession=?
> Og bytter tilsvarende om p� CreateParameter-linierne s� er det @P2 den
> brokker sig over.
>
>
> ADODB
> con.Provider = "sqloledb"
> Network Library=dbmssocn;
>
> Denne konstruktion med 3 parametre virker:
>
> set oOrdre=Server.CreateObject("ADODB.command")
> oOrdre.ActiveConnection = Record
>
> with oOrdre
> Sql = "Update t_ordrer set ordretotal=?, betaling=? where id=?"
> .CommandText = sql
> .CommandType = adCmdText
> .parameters.Append
> .CreateParameter("ordretotal",adCurrency,adParamInput,,orderTotal)
> .parameters.Append
> .CreateParameter("betaling",adInteger,adParamInput,,intBetaling)
> .parameters.Append .CreateParameter("id",adInteger,adParamInput,,OrdreId)
> .prepared = true
> .execute
> end with

Hvorfor ikke pr�ve:

sql="select * from t_basket where basketSession=@ses and prodID=@id"
.CreateParameter("@ses",adChar,adParamInput,50,sessid)
.CreateParameter("@prod",adInteger,adParamInput,,productID)

om ikke andet s� er koden da nemmere at l�se!

Og pr�v evt. at create parametre uden v�rdi og s� s�tte v�rdi senere.

Arne
Technical Details
Message-ID: <4f591651$0$294$14726298@news.sunsite.dk>
Path: arc1-ca.pugleaf.net!h9ni3606pbe.0!nntp.google.com!news1.google.com!news.glorb.com!dotsrc.org!filter.dotsrc.org!news.dotsrc.org!not-for-mail
References: <4f58d7e7$0$295$14726298@news.sunsite.dk> <4f58e007$0$282$14726298@news.sunsite.dk> <4f590a23$0$293$14726298@news.sunsite.dk>

Show Full Headers
Complete Article Headers
X-Google-Thread: fcdf9,6e431ff705133bc8
X-Google-NewGroupId: yes
X-Google-Attributes: gid5233a24ee9,domainid0,public,usenet
X-Google-Language: DANISH,ASCII
Received: by 10.68.201.129 with SMTP id ka1mr214190pbc.6.1331238482812;
        Thu, 08 Mar 2012 12:28:02 -0800 (PST)
Path: arc1-ca.pugleaf.net!h9ni3606pbe.0!nntp.google.com!news1.google.com!news.glorb.com!dotsrc.org!filter.dotsrc.org!news.dotsrc.org!not-for-mail
Date: Thu, 08 Mar 2012 15:27:58 -0500
From: Arne Vajhøj <arne@vajhoej.dk>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
MIME-Version: 1.0
Newsgroups: dk.edb.database
Subject: Re: expects the parameter '@P2', which was not supplied
References: <4f58d7e7$0$295$14726298@news.sunsite.dk> <4f58e007$0$282$14726298@news.sunsite.dk> <4f590a23$0$293$14726298@news.sunsite.dk>
In-Reply-To: <4f590a23$0$293$14726298@news.sunsite.dk>
Lines: 104
Message-ID: <4f591651$0$294$14726298@news.sunsite.dk>
Organization: SunSITE.dk - Supporting Open source
NNTP-Posting-Host: 72.192.23.141
X-Trace: news.sunsite.dk DXC=n`I5JHBRL;U;OkaSc<8a?TYSB=nbEKnk[W2Tk@mP1@A[JPe3\kP5EUQKBm9cfh9BSTM2;kT<[:>[Q<k4;o]l7K:RHoLD_Hk\nEY
X-Complaints-To: staff@sunsite.dk
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit