Can you show me some code sample?
Main Topics
Browse All TopicsHi,
I have a stored procedure that returns a value like 1,2 ,3 and 4 if something goes wrong in sp.It does not return any table data.I want to get the return value without using the command object.
Do you know how?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
USE [RIMS]
GO
/****** Object: StoredProcedure [RIMS].[MoveInitsToDaidsOa
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [RIMS].[MoveInitsToDaidsOa
(
@INIT_ID INT,
@HIERARCHY_NAME VARCHAR(50)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE
@MEM_ID INT,
@MEM_NAME VARCHAR(50),
@MEM_DESC VARCHAR(50),
@MEM_TYPE VARCHAR(50),
@MEM_ORDER INT,
@MEM_ORDER_TREE INT,
@SET_ID INT,
@MEM_PID INT,
@GROUP_ID INT,
@FY INT,
@MECH VARCHAR(5),
@RIMS_ID INT,
@UNIQUE_NAME VARCHAR(24),
@DIM_ID INT,
@CHECKOUTDATE VARCHAR(24),
@CHECKINDATE VARCHAR(24)
--SET @MEM_PID=15910
--SET @SET_ID=41
--SET @GROUP_ID=42
IF EXISTS
(SELECT DIM_ID
FROM RIMS_A.RIMS_A.DIMENSIONS
WHERE DIM_CHECKOUT_BY_A IS NOT NULL)
BEGIN
--SET @ERROR=1
--SET @error_desc='Structure checked out.'
RETURN(1)
END
IF EXISTS
(SELECT AGGR_OBJECT_ID
FROM RIMS_A.RIMS_A.AGGR_OBJECTS
WHERE AGGR_OBJECT_CHECKEDOUT_BY IS NOT NULL)
BEGIN
--SET @ERROR=1
--SET @error_desc='Structure checked out.'
RETURN(1)
END
IF EXISTS
(SELECT DIM_ID
FROM RIMS_A.RIMS_A.DIMENSIONS
WHERE DIM_CHECKOUT_DATE_A>DIM_REL
BEGIN
--SET @ERROR=1
--SET @ERROR_DESC='Structure not released. Please release structure.'
RETURN(1)
END
IF EXISTS
(SELECT AGGR_OBJECT_ID
FROM RIMS_A.RIMS_A.AGGR_OBJECTS
WHERE AGGR_OBJECT_CHECKED_OUT_DA
BEGIN
--SET @ERROR=1
--SET @ERROR_DESC='Structure not released. Please release structure.'
RETURN(1)
END
BEGIN
BEGIN TRY
-- GET SOURCE MEMBER VALUES
SELECT @MEM_DESC=MEM_DESC,@GROUP_
FROM RIMS.RIMS.CUST2
WHERE MEM_ID=@INIT_ID
SELECT @FY=FY,@MECH=MECH,@RIMS_ID
FROM RIMS.RIMS.MISSION_RIMS_MAP
WHERE INITIATIVE_ID=@INIT_ID
-- GET HIERARCHY ID
SELECT @SET_ID= GROUP_ID
FROM RIMS.RIMS.GROUPS
WHERE GROUP_NAME=@HIERARCHY_NAME
IF @SET_ID IS NOT NULL
BEGIN
--GET PARENT IDS OF GRANTS,CONTRACTS IN THE HIERARCHY
IF @SET_ID=41 --Total Initiatives hierarchy
BEGIN
IF UPPER(@MECH)='C'
SET @MEM_PID=15910
ELSE IF UPPER(@MECH)='G'
SET @MEM_PID=15908
SET @DIM_ID=11
END
END
ELSE
BEGIN
--SET @ERROR=1
--SET @ERROR_DESC='Hierarchy not found.'
RETURN(1)
END
-- GET NEXT MEM_ID
SELECT @MEM_ID = ISNULL(MAX(MEM_ID),0) + 1
FROM RIMS.RIMS.CUST2 WHERE MEM_ID<80000000 and MEM_ID >=11000
-- GET NEXT MEM_ORDER
SELECT @MEM_ORDER = MAX(MEM_ORDER)+1
FROM RIMS.RIMS.CUST2
-- GET NEXT CUST2_TREE.MEM_ORDER
SELECT @MEM_ORDER_TREE = MAX(MEM_ORDER)+1
FROM RIMS.RIMS.CUST2_TREE WHERE SET_ID=@SET_ID
--CREATE MEM_NAME
SET @MEM_NAME = CAST(@FY AS varchar(10))+ '-DAIDS OAR-'+ @MECH + '-' + CAST(@MEM_ORDER_TREE AS varchar(10))
--CREATE UNIQUE NAME FOR MISSION_RIMS_MAP
SET @UNIQUE_NAME = CAST(@DIM_ID AS varchar(10))+ '.'+ CAST(@SET_ID AS varchar(10)) + '.' + CAST(@MEM_ID AS varchar(10))
END TRY
BEGIN CATCH
--SET @ERROR = @@ERROR;
--SET @ERROR_DESC = 'Error assigning parameters.'
RETURN(1);
END CATCH
END
---Check Out Dimensions in authorized database
BEGIN TRANSACTION
select @CHECKOUTDATE = SUBSTRING(CONVERT ( varchar(20) , getdate() , 121),1,19);
BEGIN
BEGIN TRY
UPDATE RIMS_A.RIMS_A.DIMENSIONS
SET DIM_CHECKOUT_DATE_A=@CHECK
DIM_CHECKOUT_BY_A='RIMS',
DIM_CHECKOUT_TYPE_A='A'
UPDATE RIMS_A.RIMS_A.AGGR_OBJECTS
SET
AGGR_OBJECT_CHECKED_OUT_DA
AGGR_OBJECT_CHECKEDOUT_BY=
AGGR_OBJECT_CHECKEDOUT_TYP
WHERE AGGR_OBJECT_CODE in ('FCR','JRN','COM')
END TRY
BEGIN CATCH
--SET @ERROR = @@ERROR;
--SET @ERROR_DESC = 'Error checking out structure.'
ROLLBACK TRANSACTION;
RETURN(1)
END CATCH
END
-- INSERT NEW INITIATIVES INTO AUTHORIZED DATEBASE. WHEN DONE, CHECKIN.
BEGIN
BEGIN TRY
INSERT INTO RIMS_A.RIMS_A.CUST2(MEM_ID
VALUES(@MEM_ID,@MEM_NAME,@
INSERT INTO RIMS_A.RIMS_A.CUST2_X_SET(
VALUES(@MEM_ID,@SET_ID)
INSERT INTO RIMS_A.RIMS_A.CUST2_TREE(M
VALUES(@MEM_ID,@MEM_PID,@S
END TRY
BEGIN CATCH
--SET @ERROR = @@ERROR;
--SET @ERROR_DESC = 'Error inserting initiatives (Cust2) in authorized database.'
ROLLBACK TRANSACTION
RETURN(2)
END CATCH
END
--CHECK IN
select @CHECKINDATE = SUBSTRING(CONVERT ( varchar(20) , getdate() , 121),1,19);
BEGIN
BEGIN TRY
UPDATE RIMS_A.RIMS_A.DIMENSIONS
SET DIM_CHECKOUT_DATE_A=NULL,
DIM_CHECKOUT_BY_A=NULL,
DIM_CHECKOUT_TYPE_A=NULL,
DIM_UPDATED_DATE_A=@CHECKI
UPDATE RIMS_A.RIMS_A.AGGR_OBJECTS
SET
AGGR_OBJECT_CHECKED_OUT_DA
AGGR_OBJECT_CHECKEDOUT_BY=
AGGR_OBJECT_CHECKEDOUT_TYP
AGGR_OBJECT_UPDATED_DATE=@
WHERE AGGR_OBJECT_CODE in ('FCR','JRN','COM');
END TRY
BEGIN CATCH
--SET @ERROR = @@ERROR;
--SET @ERROR_DESC = 'Error checking in structure.';
ROLLBACK TRANSACTION;
RETURN(3)
END CATCH
END
--UPDATE PRODUCTION DATABASE. WHEN DONE, RELEASE.
BEGIN
BEGIN TRY
INSERT INTO RIMS.RIMS.CUST2(MEM_ID,MEM
VALUES(@MEM_ID,@MEM_NAME,@
INSERT INTO RIMS.RIMS.CUST2_X_SET(MEM_
VALUES(@MEM_ID,@SET_ID)
INSERT INTO RIMS.RIMS.CUST2_TREE(MEM_I
VALUES(@MEM_ID,@MEM_PID,@S
END TRY
BEGIN CATCH
--SET @ERROR = @@ERROR;
--SET @ERROR_DESC = 'Error inserting initiatives (Cust2) in production database.';
ROLLBACK TRANSACTION;
RETURN(4)
END CATCH
END
-- INSERT INTO MISSION_RIMS_MAP TABLE
BEGIN
BEGIN TRY
INSERT INTO RIMS.RIMS.MISSION_RIMS_MAP
VALUES(@MEM_ID,@RIMS_ID,@U
END TRY
BEGIN CATCH
--SET @ERROR = @@ERROR;
--SET @ERROR_DESC = 'Error inserting initiatives (mission_rims_map) in production database.'
ROLLBACK TRANSACTION;
RETURN(5)
END CATCH
END
COMMIT TRANSACTION
END
Take a look here:
http://www.simple-talk.com
The idea is that if you get a valid record set you can return that. Otherwise, you can return the error number as a record.
FtB
I am returning numbers instead of error numbers in my code.I say Return(1) instead of Return @error.
When I say Return(1) does that mean I am sending 1 in a record.I am not sure.If I am sending that as a record how do you think i can access this number in the ASP page without using the command object.
All you'll need to do is create the logic in your stored procedure. For example:
SELECT CASE
WHEN some condition
THEN SELECT something
WHEN some other condition
THEN SELECT something else
WHEN some different condition
THEN SELECT something different
END
That way, you'll have a record set returned no matter what.
FtB
Business Accounts
Answer for Membership
by: fritz_the_blankPosted on 2009-03-13 at 13:25:08ID: 23883171
I think that the command object is the best way to go--that is always how I call my stored procedures.
)
Baring that, you can try the following:
1) Set objRS = objConnection.Execute(sSql
2) Rework your SP with conditional logic so that it either returns your record set or a single record with a single field that holds your value if something goes wrong.
FtB