stored proc

Posts   
 
    
Posts: 2
Joined: 11-Dec-2007
# Posted on: 11-Dec-2007 18:52:23   

Hello,

i have a stored procedure here after. this stored procedure returne a datatable. But the code generate return interger. (in module ActionProcedures.vb). How could resolve this.

Thanks

Pierre


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pVerifierParametreObligatoire]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[pVerifierParametreObligatoire] GO

CREATE PROCEDURE [dbo].[pVerifierParametreObligatoire] (@SousItemID INT) AS BEGIN declare @NbSousitem int declare @NbSousitemQS int declare @NbSousitemQF int

    -- Déclarations 
    DECLARE @toReturn TABLE
    (
        SousItemID      INT NOT NULL
    )


SELECT   @NbSousitem =  COUNT(SousItem.SousItemID) 
FROM         SousItem INNER JOIN
                    dbo.fSelectionSousItemPartielActifSeulement(@SousItemID) AS fSelectionSousItemPartielActifSeulement_1 ON 
                    SousItem.SousItemID = fSelectionSousItemPartielActifSeulement_1.SousItemID
GROUP BY SousItem.ItemID_Racine


SELECT   @NbSousitemQS =   COUNT(fSelectionSousItemPartielActifSeulement_1.SousItemID)
FROM         dbo.fSelectionSousItemPartielActifSeulement(@SousItemID) AS fSelectionSousItemPartielActifSeulement_1 INNER JOIN
                    Parametre_SousItem ON fSelectionSousItemPartielActifSeulement_1.SousItemID = Parametre_SousItem.SousItemID
GROUP BY Parametre_SousItem.ParametreID
HAVING    (Parametre_SousItem.ParametreID = 8) 

if @NbSousitem > @NbSousitemQS
BEGIN

    insert into @toReturn(SousitemID) select SousItemID from    fSelectionSousitemParametreObligatoireNonInclu (@SousItemID, 8) 

END
ELSE
BEGIN


    SELECT   @NbSousitemQF =   COUNT(fSelectionSousItemPartielActifSeulement_1.SousItemID)
    FROM         dbo.fSelectionSousItemPartielActifSeulement(@SousItemID) AS fSelectionSousItemPartielActifSeulement_1 INNER JOIN
                        Parametre_SousItem ON fSelectionSousItemPartielActifSeulement_1.SousItemID = Parametre_SousItem.SousItemID
    GROUP BY Parametre_SousItem.ParametreID
    HAVING    (Parametre_SousItem.ParametreID = 17)

    if @NbSousitem > @NbSousitemQF
    BEGIN
        DECLARE @SousItemQF TABLE
            (
                SousItemID      INT NOT NULL,
                CodeUnitFR      Varchar(20) not null,
                Valeur          DECIMAL(19,10)
            )

                insert into @SousItemQF(SousitemID, Valeur, CodeUnitFR ) SELECT  Parametre_SousItem.SousItemID, Parametre_SousItem.Valeur, Unite_Langue.Code
                        FROM         dbo.fSelectionSousitemParametreObligatoireNonInclu(@SousItemID, 17) AS fSelectionSousitemParametreObligatoireNonInclu_1 INNER JOIN
                                            Parametre_SousItem ON fSelectionSousitemParametreObligatoireNonInclu_1.SousItemID = Parametre_SousItem.SousItemID INNER JOIN
                                            Unite_Langue ON Parametre_SousItem.UniteID = Unite_Langue.UniteID
                        WHERE    (Unite_Langue.LangueID = 1) AND (Parametre_SousItem.ParametreID = 8) 


        DECLARE @SousItem_ID INT
        DECLARE @CodeUnitFR varchar(20)
        DECLARE @Valeur DECIMAL(19,10)


        DECLARE c CURSOR LOCAL FAST_FORWARD
        FOR SELECT DISTINCT SousItemID, CodeUnitFR, Valeur FROM @SousItemQF
        OPEN c
        FETCH NEXT FROM c INTO @SousItem_ID, @CodeUnitFR, @Valeur
        WHILE @@FETCH_STATUS = 0
        BEGIN


            EXEC pInsertParametreSousItem @SousItem_ID, 'QF',0, @Valeur, @CodeUnitFR, 1, 1, '[QS]', 0, 'QS', '', '' 
            FETCH NEXT FROM c INTO @SousItem_ID, @CodeUnitFR, @Valeur

        END -- while
        CLOSE c
        DEALLOCATE c



        END -- if @NbSousitem > @NbSousitemQF
END -- ELSE



select * from @toReturn

END


Attachments
Filename File size Added on Approval
storedProc.txt 3,315 11-Dec-2007 18:52.52 Approved
goose avatar
goose
User
Posts: 392
Joined: 06-Aug-2007
# Posted on: 11-Dec-2007 19:22:10   

Hi, quoting from the manual:

There are two types of stored procedures: procedures which do not return a resultset, called Action Stored Procedures, and procedures which return one or more resultsets, which are called Retrieval Stored Procedures.

You are probably using Action Stored Procedures calls instead of Retrieval Stored Procedures. Please refer to the manual for details (LLBLGen Pro - generated code - Calling a stored procedure, Adapter)

Posts: 2
Joined: 11-Dec-2007
# Posted on: 11-Dec-2007 19:47:23   

goose wrote:

Hi, quoting from the manual:

There are two types of stored procedures: procedures which do not return a resultset, called Action Stored Procedures, and procedures which return one or more resultsets, which are called Retrieval Stored Procedures.

You are probably using Action Stored Procedures calls instead of Retrieval Stored Procedures. Please refer to the manual for details (LLBLGen Pro - generated code - Calling a stored procedure, Adapter)

My stored procedure return a datatable. So it suppose to be a Retrieval Procedures. but when a refresh all catalogs (ctrl-R). and add stored procedure calls. It appear in 'action stored procedure calls' section.

Thank you simple_smile

NB: My version of llblgenPro is 1.0

Walaa avatar
Walaa
Support Team
Posts: 14995
Joined: 21-Aug-2005
# Posted on: 12-Dec-2007 10:33:04