Procedure or function RecordTxn has too many arguments specified

C

c676228

Hi everyone,
I have a sql store procedure which accept three parameters and for the first
time I call this store procedure, it seems fine, but when I call it second
time in the program with the same code, it seems it memorizes the old three
parameters I appended the first time and it gives me the error message as
specified in the subject line. I just don't know how to avoid it.
I need to call in the program for multiple times, any suggestions I should do?
I just cannot think of a good way to do it.
Thank you.
Betty

cmdTemp.CommandText = "RecordTxn"
cmdTemp.CommandType = adCmdStoredProc
Set paramOrderID=cmdTemp.CreateParameter("@orderID", adVarChar,
adParamInput,26)
Response.Write order_id
'Response.End
paramOrderID.value=order_id

cmdTemp.Parameters.Append paramOrderID
Set paramNo=cmdTemp.CreateParameter("@no", adChar, adParamInput,26)
paramNo.value=trim(Request("number"))
cmdTemp.Parameters.Append paramNo
Set paramExpDate=cmdTemp.CreateParameter("@date", adChar, adParamInput,4)
paramDate.value=str_date
cmdTemp.parameters.Append paramDate
cmdTemp.Execute
 
B

Bob Barrows [MVP]

c676228 said:
Hi everyone,
I have a sql store procedure which accept three parameters and for
the first time I call this store procedure, it seems fine, but when I
call it second time in the program with the same code, it seems it
memorizes the old three parameters I appended the first time and it
gives me the error message as specified in the subject line. I just
don't know how to avoid it.
I need to call in the program for multiple times, any suggestions I
should do? I just cannot think of a good way to do it.
Thank you.
Betty

cmdTemp.CommandText = "RecordTxn"
cmdTemp.CommandType = adCmdStoredProc
Set paramOrderID=cmdTemp.CreateParameter("@orderID", adVarChar,
adParamInput,26)
Response.Write order_id
'Response.End
paramOrderID.value=order_id

cmdTemp.Parameters.Append paramOrderID
Set paramNo=cmdTemp.CreateParameter("@no", adChar, adParamInput,26)
paramNo.value=trim(Request("number"))

Always validate user inputs before using them!
cmdTemp.Parameters.Append paramNo
Set paramExpDate=cmdTemp.CreateParameter("@date", adChar,

Why are you storing a date in a Char field rather than a datetime field?
adParamInput,4) paramDate.value=str_date
cmdTemp.parameters.Append paramDate
cmdTemp.Execute

Well, you have no output parameters, so I would suggest, instead of the
explicit Command object, using the "procedure-as-connection-method"
technique (see my previous reply for the link I posted.) In this case,
assuming "conn" is the name of your connection variable:

dim num
num=trim(Request("number"))
if not IsValid(num) then
Response.Write num & " is not valid"
Response.End
end if
conn.RecordTxn order_id, num, str_date
 
C

c676228

Thanks for your expert opinion, Bob.
Yep, it works better to use your way. it also reduces the number of lines of
code.
str_date is just a string like '0708', not a real date.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,701
Latest member
XavierQ83

Latest Threads

Top