نمایش نتایج 1 تا 3 از 3

نام تاپیک: مشکل با جدول مجازی

  1. #1
    کاربر تازه وارد آواتار Loveski
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    کرمان
    پست
    49

    مشکل با جدول مجازی

    باسلام
    من برای انجام دادن یکسری محاسبات و ذخیره سازی موقت انها از جدول مجازی استفاده می کنم ولی هر دفعه جواب متفاوتی را بر می گرداند
    ولی زمانی که همان داده ها را در یک جدول ثابت (معمولی) ذخیره می کنم جواب درست را بر می گرداند و با تعداد دفعات تکرار حواب ثابتی را بر می گرداند.

    به نظر شما دوستان مشکل از چی می باشد ؟

    با تشکر.

  2. #2

    نقل قول: مشکل با جدول مجازی

    سلام دوست عزیز
    میشه کدهاتو ببینیم؟

  3. #3
    کاربر تازه وارد آواتار Loveski
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    کرمان
    پست
    49

    نقل قول: مشکل با جدول مجازی


    declare @ID bigint
    declare @Group int

    ------Build_Tree-------
    declare @Radif bigint
    declare @ID1 bigint
    declare @parent bigint
    declare @check bit
    declare @Level int
    declare @num bigint

    --------------
    ------build_Edge--------
    declare @ID2 bigint
    declare @parent2 bigint
    declare @Level2 int
    declare @ID12 bigint
    declare @parent12 bigint
    declare @Level12 int
    declare @num2 int

    ------------------------
    Create TABLE #Virtual_Tree_Sense (
    [Radif] [int] IDENTITY(1,1) NOT NULL,
    [ID] [bigint] NULL,
    [Parent] [bigint] NULL,
    [Level] [int] NULL,
    [check] [bit] NULL default(0)
    )

    Create Table #Graph (
    [Radif] [int] IDENTITY(1,1) NOT NULL,
    [ID] [bigint] NULL,
    [Parent] [bigint] NULL,
    [Level] [int] NULL,
    [num] [int] NULL
    )

    Truncate table #Graph
    Truncate table #Virtual_Tree_Sense

    --TRuncate Table Graph
    --Truncate Table Find_node

    DECLARE MyCur2 CURSOR
    FOR

    SELECT [ID],[Group]
    FROM [Graph].[dbo].[Sense_Word]

    OPEN MyCur2

    FETCH NEXT FROM MyCur2 INTO @ID , @Group
    WHILE (@@FETCH_STATUS <> -1) AND (@@FETCH_STATUS <> -2)
    BEGIN --while1


    --EXECUTE [Graph].[dbo].[Build_Tree] @ID
    ----------------------------------------------

    --set @num = 108820496
    set @num = @ID


    delete from #Virtual_Tree_Sense


    INSERT INTO #Virtual_Tree_Sense
    ([ID]
    ,[Parent], [Level])

    Select id , parent , 1 from [Graph].[dbo].[Relation_Wordnet]
    where parent = @num

    DECLARE MyCur CURSOR
    FOR

    SELECT [Radif],[ID],[Parent],[Check],[Level] FROM #Virtual_Tree_Sense
    Where ([check] = 0 or [check] is null) And [Level] < 4

    OPEN MyCur

    FETCH NEXT FROM MyCur INTO @radif , @ID1 , @parent , @Check , @level
    WHILE (@@FETCH_STATUS <> -1) AND (@@FETCH_STATUS <> -2)
    BEGIN --while1

    INSERT INTO #Virtual_Tree_Sense
    ([ID]
    ,[Parent],[Level])
    Select id , parent , @level+1 from [Graph].[dbo].[Relation_Wordnet]
    where parent = @ID1

    And
    (ID not in
    (SELECT [ID] FROM #Virtual_Tree_Sense))
    and
    ID <> @num

    UPDATE #Virtual_Tree_Sense
    SET [Check] = 1
    WHERE radif = @Radif


    FETCH NEXT FROM MyCur INTO @radif , @ID1 , @parent , @Check , @level
    END -- While 1

    CLOSE Mycur
    DEALLOCATE MyCur


    ------------------------------------------------

    --EXECUTE [Graph].[dbo].[Build_Edge] @Group

    -------------------------------------------------

    set @num2 = (select max(num) from #Graph)

    IF (@num2 is null) set @num2 =0

    DECLARE MyCur1 CURSOR
    FOR

    SELECT ID,Parent,[Level] FROM #Virtual_Tree_Sense
    where ID in
    (select ID from Sense_Word where [Group] <> @Group)
    group by ID,Parent,[Level]
    order by level

    OPEN MyCur1

    FETCH NEXT FROM MyCur1 INTO @ID2 , @parent2 , @level2
    WHILE (@@FETCH_STATUS <> -1) AND (@@FETCH_STATUS <> -2)
    BEGIN --while1

    set @num2 = @num2 + 1

    INSERT INTO #Graph
    ([ID]
    ,[Parent],[Level],[num])
    values(@id2,@Parent2,@Level2,@num2)

    set @Level2 = @Level2 - 1
    While @level2 > 0
    begin

    Select @ID2 =ID , @Parent2= parent , @Level12 =[level] from #Virtual_Tree_Sense Where ID = @Parent2 And Level = @Level2
    group by ID,Parent,[Level]
    order by [level]


    INSERT INTO #Graph
    ([ID]
    ,[Parent],[Level],[num])
    values(@id2,@Parent2,@Level2,@num2)

    set @Level2 = @Level2 - 1
    End


    FETCH NEXT FROM MyCur1 INTO @ID2 , @parent2 , @level2
    END -- While 1

    CLOSE Mycur1
    DEALLOCATE MyCur1

    -------------------------------------------------

    FETCH NEXT FROM MyCur2 INTO @ID , @Group
    END -- While 1

    CLOSE Mycur2
    DEALLOCATE MyCur2


    ----------------------End---------------------------
    ----------------------Begin------------------------------
    --declare @num int

    Truncate table Edge

    DECLARE MyCur1 CURSOR
    FOR

    SELECT [num]
    FROM #Graph
    group by [num]

    OPEN MyCur1

    FETCH NEXT FROM MyCur1 INTO @num
    WHILE (@@FETCH_STATUS <> -1) AND (@@FETCH_STATUS <> -2)
    BEGIN --while1

    --EXECUTE [Graph].[dbo].[Build_Edge_Table] @num
    ------------------------------------------
    --declare @ID bigint
    --declare @parent bigint
    --declare @Level int


    INSERT INTO [Graph].[dbo].[Edge]
    ([Edge]
    ,[E1]
    ,[E2])
    SELECT num
    ,[Parent],[ID]
    FROM #Graph
    Where num = @num and level = 1


    DECLARE MyCur CURSOR
    FOR

    SELECT [ID]
    ,[Parent],[level]
    FROM #Graph
    Where num = @num And level >1
    order by num,[level]
    OPEN MyCur

    FETCH NEXT FROM MyCur INTO @ID , @parent, @level
    WHILE (@@FETCH_STATUS <> -1) AND (@@FETCH_STATUS <> -2)
    BEGIN --while1

    IF (@level = 2)
    begin
    UPDATE [Graph].[dbo].[Edge] SET [E3] = @ID Where Edge = @num
    End

    Else IF (@level = 3)
    begin
    UPDATE [Graph].[dbo].[Edge] SET [E4] = @ID Where Edge = @num
    End
    Else IF (@level = 4)
    begin
    UPDATE [Graph].[dbo].[Edge] SET [E5] = @ID Where Edge = @num
    End



    FETCH NEXT FROM MyCur INTO @ID , @parent , @level
    END -- While 1

    CLOSE Mycur
    DEALLOCATE MyCur

    ------------------------------------------


    FETCH NEXT FROM MyCur1 INTO @num
    END -- While 1

    CLOSE Mycur1
    DEALLOCATE MyCur1

    Drop table #Graph
    Drop table #Virtual_Tree_Sense

    ----------------------End------------------------------

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •