Home All Groups Group Topic Archive Search About

Procedure or function RecordTxn has too many arguments specified



Author
11 Sep 2006 10:32 PM
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
--
Betty

Author
11 Sep 2006 10:43 PM
Bob Barrows [MVP]
c676228 wrote:
Show quote
> 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

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
Author
14 Sep 2006 4:14 PM
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.
--
Betty


Show quote
"Bob Barrows [MVP]" wrote:

> c676228 wrote:
> > 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
>
> --
> Microsoft MVP -- ASP/ASP.NET
> Please reply to the newsgroup. The email account listed in my From
> header is my spam trap, so I don't check it very often. You will get a
> quicker response by posting to the newsgroup.
>
>
>

AddThis Social Bookmark Button