472,353 Members | 1,414 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,353 software developers and data experts.

ASP / Stored Procedure SQL Insert Help

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
Jul 19 '05 #1
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
Jul 19 '05 #2
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


Jul 19 '05 #3
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

Jul 19 '05 #4
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
Jul 19 '05 #5
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

Jul 19 '05 #6
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
Jul 19 '05 #7

"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

Jul 19 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
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...
4
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...
6
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...
10
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....
4
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...
9
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...
17
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...
1
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 ::...
0
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...
1
by: Kemmylinns12 | last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and...
0
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...
0
jalbright99669
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...
0
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. ...
2
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...
0
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...
0
hi
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...
0
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....
0
BLUEPANDA
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...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.