Hi there - this should be fairly simple for someone. Basically I
can't figure out how to pass the parameters from ASP to a Stored
Procedure on SQL.
Here's my code:
I just need to help in learning how to pass these varibables from ASP
to the SP.
Here's my ASP code ...
************************************************** *******************
DIM Connect, Q, AdminRep, LTSOffice, Gender, OfficeNum
AdminRep = Request("AdminRep")
LTSOffice = Request("LTSOffice")
Gender = Request("Gender")
OfficeNum = Request.Cookies("OfficeNum")
SET Connect = SERVER.CREATEOBJECT("ADODB.CONNECTION")
Connect.Open = "DATABASE=blah;UID=blah;PWD=blah;DSN=blah;"
Connect.Execute("Insert_LeadStat")
Connect.Close
Set Connect = Nothing
************************************************** *******************
Gives me this error:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Procedure
'insert_LeadStat' expects parameter '@OfficeNum', which was not
supplied.
/ltsenroll/leadsource_dbadd.asp, line 22
Here's my Stored procedure ...
************************************************** *******************
CREATE PROCEDURE [insert_LeadStat]
( @OfficeNum [int],
@LTSOffice [varchar](50),
@AdminRep [varchar](50),)
AS INSERT INTO [MFKProductions].[dbo].[LeadStats]
( [OfficeNum],
[LTSOffice],
[AdminRep],)
VALUES
( @OfficeNum,
@LTSOffice,
@AdminRep,)
GO
I've searched through the groups and thought I had it with
"parameters.append .createparameter ...." but I can't seem to get this
to work ...
Thanks in advance 7 8882
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open ...
Set objCommand = Server.CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConn
With objCommand
.CommandType = adCmdStoredProc
.CommandText = Insert_LeadStat"
.Parameters.Append .CreateParameter("@OfficeNum", adInteger,
adParamInput, 4, OfficeNum)
'
' Append other parameters here
'
.Execute
End With
Set objCommand = Nothing
objConn.Close
Set objConn = Nothing
Cheers
Ken
"Bill Kellaway" <bi**********@hotmail.com> wrote in message
news:f3**************************@posting.google.c om...
: Hi there - this should be fairly simple for someone. Basically I
: can't figure out how to pass the parameters from ASP to a Stored
: Procedure on SQL.
:
: Here's my code:
:
: I just need to help in learning how to pass these varibables from ASP
: to the SP.
:
:
: Here's my ASP code ...
: ************************************************** *******************
: DIM Connect, Q, AdminRep, LTSOffice, Gender, OfficeNum
:
: AdminRep = Request("AdminRep")
: LTSOffice = Request("LTSOffice")
: Gender = Request("Gender")
: OfficeNum = Request.Cookies("OfficeNum")
:
: SET Connect = SERVER.CREATEOBJECT("ADODB.CONNECTION")
: Connect.Open = "DATABASE=blah;UID=blah;PWD=blah;DSN=blah;"
: Connect.Execute("Insert_LeadStat")
: Connect.Close
: Set Connect = Nothing
: ************************************************** *******************
: Gives me this error:
: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
: [Microsoft][ODBC SQL Server Driver][SQL Server]Procedure
: 'insert_LeadStat' expects parameter '@OfficeNum', which was not
: supplied.
: /ltsenroll/leadsource_dbadd.asp, line 22
:
: Here's my Stored procedure ...
: ************************************************** *******************
: CREATE PROCEDURE [insert_LeadStat]
: ( @OfficeNum [int],
: @LTSOffice [varchar](50),
: @AdminRep [varchar](50),)
: AS INSERT INTO [MFKProductions].[dbo].[LeadStats]
: ( [OfficeNum],
: [LTSOffice],
: [AdminRep],)
: VALUES
: ( @OfficeNum,
: @LTSOffice,
: @AdminRep,)
: GO
:
: I've searched through the groups and thought I had it with
: "parameters.append .createparameter ...." but I can't seem to get this
: to work ...
:
: Thanks in advance
Ken's given you a good answer, I just wanted to add:
Bill Kellaway wrote: Connect.Open = "DATABASE=blah;UID=blah;PWD=blah;DSN=blah;"
You should be using the native OLEDB provider for SQL: the ODBC provider has
been deprecated by Microsoft. See www.connectionstrings.com
Connect.Execute("Insert_LeadStat") Connect.Close Set Connect = Nothing
************************************************** ******************* Gives me this error: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]Procedure 'insert_LeadStat' expects parameter '@OfficeNum', which was not supplied. /ltsenroll/leadsource_dbadd.asp, line 22
You did not pass any parameters. Here's my Stored procedure ... ************************************************** ******************* CREATE PROCEDURE [insert_LeadStat] ( @OfficeNum [int], @LTSOffice [varchar](50), @AdminRep [varchar](50),) AS INSERT INTO [MFKProductions].[dbo].[LeadStats] ( [OfficeNum], [LTSOffice], [AdminRep],) VALUES ( @OfficeNum, @LTSOffice, @AdminRep,) GO
If you want to use a Command object to run this procedure, you may want to
give my free Stored Procedure Call Code Generator a try. It's available at http://www.thrasherwebdesign.com/ind...asp&c=&a=clear
However, your procedure has no ouptut parameters and you do not seem to be
interested in the Return parameter, so you do not need a Command object: you
can use the stored-procedure-as-connection-method technique:
dim offnum, lts, admin
offnum = ...
lts = "..."
admin = "..."
Connect.insert_LeadStat offnum, lts,admin
Pass the parameter values just as if insert_LeadStat was a native method of
your connection object. Use variables or literal values.
HTH,
Bob Barrows
Thanks Ken !!! works great ..
Took me a bit .. had to include ADOVBS and then took awhile to the the
correct verbiage for adVarchars ...
Thanks again ...
"Ken Schaefer" <ke*******@THISadOpenStatic.com> wrote in message
news:e5**************@TK2MSFTNGP10.phx.gbl... Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open ...
Set objCommand = Server.CreateObject("ADODB.Command") Set objCommand.ActiveConnection = objConn With objCommand .CommandType = adCmdStoredProc .CommandText = Insert_LeadStat" .Parameters.Append .CreateParameter("@OfficeNum", adInteger, adParamInput, 4, OfficeNum) ' ' Append other parameters here ' .Execute End With
Set objCommand = Nothing objConn.Close Set objConn = Nothing
Cheers Ken "Bill Kellaway" <bi**********@hotmail.com> wrote in message news:f3**************************@posting.google.c om... : Hi there - this should be fairly simple for someone. Basically I : can't figure out how to pass the parameters from ASP to a Stored : Procedure on SQL. : : Here's my code: : : I just need to help in learning how to pass these varibables from ASP : to the SP. : : : Here's my ASP code ... : ************************************************** ******************* : DIM Connect, Q, AdminRep, LTSOffice, Gender, OfficeNum : : AdminRep = Request("AdminRep") : LTSOffice = Request("LTSOffice") : Gender = Request("Gender") : OfficeNum = Request.Cookies("OfficeNum") : : SET Connect = SERVER.CREATEOBJECT("ADODB.CONNECTION") : Connect.Open = "DATABASE=blah;UID=blah;PWD=blah;DSN=blah;" : Connect.Execute("Insert_LeadStat") : Connect.Close : Set Connect = Nothing : ************************************************** ******************* : Gives me this error: : Microsoft OLE DB Provider for ODBC Drivers error '80040e14' : [Microsoft][ODBC SQL Server Driver][SQL Server]Procedure : 'insert_LeadStat' expects parameter '@OfficeNum', which was not : supplied. : /ltsenroll/leadsource_dbadd.asp, line 22 : : Here's my Stored procedure ... : ************************************************** ******************* : CREATE PROCEDURE [insert_LeadStat] : ( @OfficeNum [int], : @LTSOffice [varchar](50), : @AdminRep [varchar](50),) : AS INSERT INTO [MFKProductions].[dbo].[LeadStats] : ( [OfficeNum], : [LTSOffice], : [AdminRep],) : VALUES : ( @OfficeNum, : @LTSOffice, : @AdminRep,) : GO : : I've searched through the groups and thought I had it with : "parameters.append .createparameter ...." but I can't seem to get this : to work ... : : Thanks in advance
Bill Kellaway wrote: Thanks Ken !!! works great ..
Took me a bit .. had to include ADOVBS http://www.aspfaq.com/show.asp?id=2112
Just to make sure you did not miss this:
If you want to use a Command object to run this procedure, you may want to
give my free Stored Procedure Call Code Generator a try. It's available at http://www.thrasherwebdesign.com/ind...asp&c=&a=clear
However, your procedure has no ouptut parameters and you do not seem to be
interested in the Return parameter, so you do not need a Command object: you
can use the stored-procedure-as-connection-method technique:
dim offnum, lts, admin
offnum = ...
lts = "..."
admin = "..."
Connect.insert_LeadStat offnum, lts,admin
Pass the parameter values just as if insert_LeadStat was a native method of
your connection object. Use variables or literal values.
HTH,
Bob Barrows
Thanks Bob,
I'm not sure what the Return Parameter does. I'll take a guess though -
please correct me if I'm wrong - It's SQL's way of telling the Command
object if the command was successful or not ??? If so, this would be very
helpful to me. The reason that I changed this page from ADO to a SP Insert
was that I was getting intermittant duplicate inserts. Rebooting SQL
seemed to help for awhile.
Might I be able to use a return parameter to prevent duplicate inserts from
the ASP page ???
Thanks again all ...
Bill
"Bob Barrows" <re******@NOyahoo.SPAMcom> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl... Bill Kellaway wrote: Thanks Ken !!! works great ..
Took me a bit .. had to include ADOVBS http://www.aspfaq.com/show.asp?id=2112
Just to make sure you did not miss this:
If you want to use a Command object to run this procedure, you may want to give my free Stored Procedure Call Code Generator a try. It's available at http://www.thrasherwebdesign.com/ind...asp&c=&a=clear However, your procedure has no ouptut parameters and you do not seem to be interested in the Return parameter, so you do not need a Command object:
you can use the stored-procedure-as-connection-method technique:
dim offnum, lts, admin offnum = ... lts = "..." admin = "..." Connect.insert_LeadStat offnum, lts,admin
Pass the parameter values just as if insert_LeadStat was a native method
of your connection object. Use variables or literal values.
HTH, Bob Barrows
Bill Kellaway wrote: Thanks Bob,
I'm not sure what the Return Parameter does. I'll take a guess though - please correct me if I'm wrong - It's SQL's way of telling the Command object if the command was successful or not ???
Close. The Return parameter contains the value returned by a RETURN
statement in your SP. If you do not have a RETURN statement, a successful
procedure will return 0, while a procedure that raises an error will return
NULL.
There are 3 ways to return values from a SQL Server stored procedure:
1. a Select statement that returns a resultset
--run this script in Query Analyzer (QA):
Create Procedure SelectValue
(@input int)
AS
Select @input + 5
go
exec SelectValue 10
go
drop procedure SelectValue
2. a Return parameter:
--run this script in QA:
create procedure ReturnValue
(@input int)
AS
Return @input + 5
go
declare @returnvalue int
exec @returnvalue = ReturnValue 10
select @returnvalue
go
drop procedure ReturnValue
3. an Output Parameter:
--run this script in QA:
create procedure OutputValue
(@input int output)
AS
SET @input = @input + 5
go
declare @outputvalue int
SET @outputvalue = 10
exec OutputValue @outputvalue output
select @outputvalue
go
drop procedure OutputValue
I do not recommend method 1 for returning a single value. A resultset is
expensive to build, in that it must contain metadata in addition to data. So
more network traffic is created, and the client app needs to expend more
resources in order to retrieve and expose the resultset to the calling
procedure.
Most developers use the Return parameter to return status codes instead of
data. This is for the sake of consistency: there is no technical reason not
to use RETURN to return data, except that RETURN can only be used to return
integers. If you need to return other datatypes, you need to use an output
parameter.
If so, this would be very helpful to me. The reason that I changed this page from ADO to a SP Insert was that I was getting intermittant duplicate inserts. Rebooting SQL seemed to help for awhile.
Very strange. Did you have a unique index to prevent duplicate inserts?
Might I be able to use a return parameter to prevent duplicate inserts from the ASP page ???
Yes, but you don't have to. You can use EXISTS in your stored procedure to
do this without raising an error:
IF NOT EXISTS
(Select * from sometable
where somecolumn=<data_to_be_inserted>)
BEGIN
INSERT sometable ...
END
--optionally - do this only if you want your client app to know
ELSE
BEGIN
RETURN 2
--code which you create to designate that record exists
END
HTH,
Bob Barrows
"Bob Barrows" <re******@NOyahoo.SPAMcom> wrote in message
news:eH**************@TK2MSFTNGP12.phx.gbl... Bill Kellaway wrote: Thanks Bob,
I'm not sure what the Return Parameter does. I'll take a guess though - please correct me if I'm wrong - It's SQL's way of telling the Command object if the command was successful or not ???
Ah .. of course ... a select statement would have to have return values
.... not required with an Insert ...
So .. how might I access this return value of 0 from ASP ?
Also .. no .. I have no index's on that table. This table used to count
phone calls. If you were to index that table what field would you index ?
Thanks again for your great help ...
Bill
Close. The Return parameter contains the value returned by a RETURN statement in your SP. If you do not have a RETURN statement, a successful procedure will return 0, while a procedure that raises an error will
return NULL.
There are 3 ways to return values from a SQL Server stored procedure: 1. a Select statement that returns a resultset --run this script in Query Analyzer (QA): Create Procedure SelectValue (@input int) AS Select @input + 5 go exec SelectValue 10 go drop procedure SelectValue
2. a Return parameter: --run this script in QA: create procedure ReturnValue (@input int) AS Return @input + 5 go declare @returnvalue int exec @returnvalue = ReturnValue 10 select @returnvalue go drop procedure ReturnValue
3. an Output Parameter: --run this script in QA: create procedure OutputValue (@input int output) AS SET @input = @input + 5 go declare @outputvalue int SET @outputvalue = 10 exec OutputValue @outputvalue output select @outputvalue go drop procedure OutputValue
I do not recommend method 1 for returning a single value. A resultset is expensive to build, in that it must contain metadata in addition to data.
So more network traffic is created, and the client app needs to expend more resources in order to retrieve and expose the resultset to the calling procedure.
Most developers use the Return parameter to return status codes instead of data. This is for the sake of consistency: there is no technical reason
not to use RETURN to return data, except that RETURN can only be used to
return integers. If you need to return other datatypes, you need to use an output parameter.
If so, this would be very helpful to me. The reason that I changed this page from ADO to a SP Insert was that I was getting intermittant duplicate inserts. Rebooting SQL seemed to help for awhile.
Very strange. Did you have a unique index to prevent duplicate inserts?
Might I be able to use a return parameter to prevent duplicate inserts from the ASP page ???
Yes, but you don't have to. You can use EXISTS in your stored procedure to do this without raising an error:
IF NOT EXISTS (Select * from sometable where somecolumn=<data_to_be_inserted>) BEGIN INSERT sometable ... END --optionally - do this only if you want your client app to know ELSE BEGIN RETURN 2 --code which you create to designate that record exists END
HTH, Bob Barrows
This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Jarrod Morrison |
last post by:
Hi all
Im relatively new to using stored procedures and im not sure if it is
possible to do what I am trying to do so any help here is greatly...
|
by: marc |
last post by:
I've been developing a stored procedure that uses a user defined
function in the query portion of the procedure. However, since the end
product...
|
by: SandySears |
last post by:
I am trying to use a stored procedure to insert a record using VS 2005, VB
and SQL Server Express. The code runs without errors or exceptions, and...
|
by: J. S. EDV |
last post by:
Hello,
I have got a little problem with stored procedures and C#.
I have got a stored procedure which should only insert something in a table....
|
by: scparker |
last post by:
Hello,
We have a stored procedure that does a basic insert of values. I am
then able to retrieve the ID number created for this new record. We...
|
by: Frawls |
last post by:
Hi
I Am am having problems with a stored Procedure that i wrote.
Basically whats happening is that the Stored procedure Runs fine when i...
|
by: Riaaaa |
last post by:
Pls check my code for the stored procedure which i created for the companydetails including
companyid P.K. Not Null int(4),
companyname Not...
|
by: sheenaa |
last post by:
Hello Members,
I m creating my application forms in ASP.Net 2005 C# using the backend SQL Server 2005.
What i have used on forms ::...
|
by: Riaaaa |
last post by:
Hi frdz,
I have created the form for entering the company details with its general information in asp.net C# 2005.
I want to put the...
|
by: Kemmylinns12 |
last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and...
|
by: Naresh1 |
last post by:
What is WebLogic Admin Training?
WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge...
|
by: jalbright99669 |
last post by:
Am having a bit of a time with URL Rewrite. I need to incorporate http to https redirect with a reverse proxy. I have the URL Rewrite rules made...
|
by: Matthew3360 |
last post by:
Hi there. I have been struggling to find out how to use a variable as my location in my header redirect function.
Here is my code.
...
|
by: Matthew3360 |
last post by:
Hi, I have a python app that i want to be able to get variables from a php page on my webserver. My python app is on my computer. How would I make it...
|
by: Arjunsri |
last post by:
I have a Redshift database that I need to use as an import data source. I have configured the DSN connection using the server, port, database, and...
|
by: WisdomUfot |
last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific...
|
by: Carina712 |
last post by:
Setting background colors for Excel documents can help to improve the visual appeal of the document and make it easier to read and understand....
|
by: BLUEPANDA |
last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS...
| |