Solved

Some simple questions...

Posted on 2002-07-16
7
290 Views
Last Modified: 2007-12-19
All this time I have been writing queries in ASP pages to access data in my d/b (2-tier architecture). The question though is: If I fill my MS SQL database with stored procedures to do the same work, how do I call directly a SP from my ASP file?

E.g. I have three SPs

SP_delete_user (user_id) -> Returns 1/0
SP_add_user (name, surname, tel_no) -> Returns user_id
SP_update_user_details (name, surname, tel_no) -> Returns 1/0

how would I call them directly from my ASP ( this is again 2-tier architecture)...
0
Comment
Question by:dinosaurus
7 Comments
 
LVL 20

Expert Comment

by:jitganguly
ID: 7156997
Follow what is described here
http://www.aspfree.com/authors/adrian/returnvalue.asp

If you happen to get errors/problems let us know

Also see for other examples

http://www.aspin.com/func/search?tree=aspin&qry=stored+procedure&cat=
0
 
LVL 12

Expert Comment

by:Wouter Boevink
ID: 7157009
include adovbs.inc or
<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library" TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"-->

Function SP_add_user(strname, strsurname, strtel_no)
     Dim Conn          : Set Conn = server.CreateObject("ADODB.Connection")
     Dim cmd               : Set cmd = Server.CreateObject("ADODB.Command")
     Dim RETURN_VALUE     : RETURN_VALUE = Null

     Conn.ConnectionString = Application("Cnn_ConnectionString")
     Conn.CursorLocation = adUseClient
     Conn.Mode = adModeReadWrite
     Conn.Open

     cmd.ActiveConnection = Conn
     cmd.CommandType = adCmdStoredProc
     cmd.CommandText = "SP_add_user"

     cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 0, RETURN_VALUE)
     cmd.Parameters.Append cmd.CreateParameter("@name", adVarChar, adParamInput, 20, strname)
     cmd.Parameters.Append cmd.CreateParameter("@surname", adVarChar, adParamInput, 20, strsurname)
     cmd.Parameters.Append cmd.CreateParameter("@tel_no", adVarChar, adParamInput, 16, strtel_no)

     cmd.Execute

     SP_add_user = cmd.Parameters("RETURN_VALUE").Value

     Set cmd = Nothing
     'Conn.Close
     'Set Conn = Nothing
End Function

Dim ReturnValue
ReturnValue = SP_add_user("test","test","1234567890")
0
 
LVL 18

Expert Comment

by:bruno
ID: 7157183
wow, that looks much harder than anything i've ever done...


i've always just written a SQL string that calls the SP, and everything else on the page is the same as if it were a normal SQL string...

here is an example of a very simple one..



SQL = "SP_QUESTION "
SQL = SQL & "@ACTION = 'del', "
SQL = SQL & "@QUESTION_ID = " & QUESTION_ID


a little bigger:

SQL1 = "SP_QUESTION "
SQL1 = SQL1 & "@ACTION = 'upd', "
SQL1 = SQL1 & "@QUESTION_ID = " & QUESTION_ID & ", "
SQL1 = SQL1 & "@QUESTION = '" & QUESTION & "', "
SQL1 = SQL1 & "@SHOW_RESULTS = " & results & ", "
SQL1 = SQL1 & "@TYPE_ID = " & TYPE_ID

0
Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

 
LVL 12

Expert Comment

by:Wouter Boevink
ID: 7157272
I know it seems a lot of code, when it can be accomplished in a few lines.

Doing it this way, it's always correct you always have the right parameters and types. It's much faster.

I wrote a script which takes a stored procedure and generates the function.
0
 
LVL 11

Accepted Solution

by:
jekl2000 earned 50 total points
ID: 7157438
Might give this a try, I use it


<%dim conn
dim rs
mt=Request.Form("mt")
set conn= Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Initial Catalog=Rettips;Data Source=GP_NT3;User ID=sa;Password=;"
set rs = conn.execute("exec sp_mtabs @mt ='"&mt&"'")
%>
0
 
LVL 2

Expert Comment

by:jsmckenzie
ID: 7157495
I don't know if those are the real names of your SPs, but you shouldn't name custom stored procedures starting with "sp_" because that's the prefix for SQL Server system stored procedures.  SQL Server thinks it's a system stored procedure and attempts to find it in the master db first.  The time it takes SQL Server to search through the master db (instead of going directly to your SP) can potentially cause a decrease in performance.
0
 

Author Comment

by:dinosaurus
ID: 7159125
I think this is the simplest way. As far as the naming conventions are concerned, no I am not using SP_ ... but thanks for this piece of very useful advice. Thank you all.
0

Featured Post

ScreenConnect 6.0 Free Trial

At ScreenConnect, partner feedback doesn't fall on deaf ears. We collected partner suggestions off of their virtual wish list and transformed them into one game-changing release: ScreenConnect 6.0. Explore all of the extras and enhancements for yourself!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question