powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / commandTimeout не работает.
7 сообщений из 7, страница 1 из 1
commandTimeout не работает.
    #36131889
sb.vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех присутствующих.
Возникла следующая проблема:
Запрос к MS SQL 2005 не прерывается после истечения свойства CommandTimeout класса SqlCommand. T.e. выполнение хранимой процедуры продолжает поедать память и никаких ошибок не генерируется.В процедуре используются курсоры и множество вызовов через Exec.
При выполнении данной ХП на серевре через Management Studio,вероятно,происходит зацикливание,так как мне не удалось дождаться ее завершения(код процедуры не мой,и разбираться в нем нет ни возможности ни желания).
ADO .NET 2.0

Хотелось бы узнать сталкивался ли кто с такой проблемой,или есть соображения куда копать?
Заранее спасибо.
...
Рейтинг: 0 / 0
commandTimeout не работает.
    #36132460
stimpi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код в студию
...
Рейтинг: 0 / 0
commandTimeout не работает.
    #36134847
sb.vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код хранимой процедуры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
806.
807.
808.
809.
810.
811.
812.
813.
814.
815.
816.
817.
818.
819.
820.
821.
822.
823.
824.
825.
826.
827.
828.
829.
830.
831.
832.
833.
834.
835.
836.
837.
838.
839.
840.
841.
842.
843.
844.
845.
846.
847.
848.
849.
850.
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
864.
865.
866.
867.
868.
869.
870.
871.
872.
873.
874.
875.
876.
877.
878.
879.
880.
881.
882.
883.
884.
885.
886.
887.
888.
889.
890.
891.
892.
893.
894.
895.
896.
897.
898.
899.
900.
901.
902.
903.
904.
905.
906.
907.
908.
909.
910.
911.
912.
913.
914.
915.
916.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[create_event]
	@SessionId integer,
	@PersonnelId integer,
	@UnitId integer,
	@ItemId integer,
	@KelaStatus integer,
	@BelongsTo integer,
	@ClientId integer,
	@OrgId integer,
	@DefaultFlag integer,
	@Lang nvarchar(2),
	@noRecurseFlag integer,
	@outEventId integer output,
    @GroupMemberId int=NULL,
    @GroupMeetingId int=NULL,
    @FinalEventStatus int=0,     
    @strCreaDate nvarchar(19)='',
    @CreateST int=1             -- Wether we create the story_item_type_XX record or not.
AS
	
	declare @EventId integer;
	declare @DefaultFraction integer;
	declare @ProfCode integer;
	declare @EventStatus integer;
	declare @DiscountPct numeric(18,6);
	declare @Price numeric(18,2);
	declare @DiscountAmount numeric(18,2);
	declare @LectureFactor numeric(9,2);
	declare @SpInvolvedFlag char(1);
	declare @StoryItemOnlyFlag char (1);
	declare @PayerOrgId integer;
	declare @StoryItemType integer;
	declare @PackageHeader  CHAR(1);
	declare @tmpItemID integer;
	declare @AccountIfNsp integer;
	declare @AccountIfSp integer;
	declare @SpOrgId integer;
	declare @strTmp varchar(500);
	declare @iPos int;
	declare @iLoop int;
	declare @ItemDescr nvarchar(20);
	declare @ClientGroupId integer;
    declare @dtCreaDate datetime;
	declare @IncomingReferralFlag char(1);
	declare @FixedPrice numeric(18,2);
	declare @EditedDefaultPrice numeric(18,2);
	declare @DefaultPrice numeric(18,2);
	declare @AgreementId integer;
    declare @PriceListId integer;
    declare @EventPayerTypeId integer;
	declare	@EventPayerId integer;
	declare @strOutEventId nvarchar(30);
	declare @FolderTypeId integer;
	declare @KelaDetId integer;
	declare @strKela nvarchar(30);
   	declare @tmpPayerOrgId int;
	declare @tmpPayerTypeId int;
	declare @tmpKelaStatusDefault nvarchar(255);

-- The default flag is nowadays always true / 21.11.2002 / PHe
	set @DefaultFlag = 1

-- For now, lecture factor is 1
    set @LectureFactor=1;
	set @DefaultFraction = 1;

	SET NOCOUNT ON
	SET LOCK_TIMEOUT 30000

	SET @PackageHeader = '0'
	set @PayerOrgId = 0;

	set @PriceListId = null
	set @FolderTypeId = 1
	set @tmpKelaStatusDefault = ''
	
	if ISNULL(@SessionId,0) = 0
	begin
		select @SessionId = session_id
		from active_session
		where personnel_id = @PersonnelId and unit_id = @UnitId;
	end

	if @BelongsTo <> 1
	begin
		if ISNULL(@OrgId,0) <> 0
		begin
			select @DefaultFraction = isnull(adj_factor_event_type, 1), 
				@AgreementId = oc.agreement_id, 
				@PriceListId = oc.agreement_id, 
				@PayerOrgId = ext_payer_id
			from agreement_profile ap, org_client oc
			where oc.agreement_id = ap.agreement_id and oc.org_id = @OrgId;
		end

		if @PriceListId is null 
		begin
			select @PriceListId = 0
		end
	end

	set @ClientGroupId = NULL;
	select @ClientGroupId = client_group_id
	from client_group
	where session_id = @SessionId;

	select @ProfCode = prof_code
	from personnel
	where personnel_id = @PersonnelId;

	if @BelongsTo <> 1
	begin
		set @DiscountPct = -1;
	
		select @DiscountPct = isnull(discount_pct, -1),
		    @FixedPrice = fixed_price
		from agreement_profile_item ai
		where ai.agreement_id = @AgreementId
		and ai.item_id = @ItemId;
	
		if @DiscountPct = -1
		begin
			select @DiscountPct = isnull(discount_pct, 0)
			from agreement_group_discount ag
			where ag.agreement_id = @AgreementId
			and ag.group_id in (  select group_id
					       from bd_event_type
					       where item_id = @ItemId );
		end
	
		if @DiscountPct = -1
		begin
			set @DiscountPct = 0;
		end
	end
	
	if ((@BelongsTo = 1) or (@BelongsTo = 2))
	begin
		select 
			@FolderTypeId = isnull(folder_type_id, 1),
			@EventPayerTypeId = event_payer_type_id,
			@EventPayerId = event_payer_id,
			@PriceListId = agreement_id
		from session
		where session_id = @SessionId
	end
	
	select @Price = default_price,
		@SpInvolvedFlag = sp_involved_flag,
		@StoryItemOnlyFlag = story_item_only_flag,
		@StoryItemType = story_item_type,
		@PackageHeader = is_package_header_flag,
		@AccountIfNsp = account_if_nsb,
		@AccountIfSp = account_if_sb,
		@ItemDescr = case @lang 
						when 'FI' then case isnull(item_short_descr_fi,'') when '' then item_descr_fi else item_short_descr_fi end
						when 'EN' then case isnull(item_short_descr_en,'') when '' then item_descr_en else item_short_descr_en end
						when 'FR' then case isnull(item_short_descr_fr,'') when '' then item_descr_fr else item_short_descr_fr end
						when 'SW' then case isnull(item_short_descr_sw,'') when '' then item_descr_sw else item_short_descr_sw end
						else item_descr_fi
					end,
		@IncomingReferralFlag = incoming_referral_flag,
		@EditedDefaultPrice = default_price,
		@DefaultPrice = default_price
	from bd_event_type
	where item_id = @ItemId;

	if @BelongsTo = 1
	begin
		set @Price = @Price * @DefaultFraction * @LectureFactor;
		set @DiscountPct = 0.0;
		set @DiscountAmount = 0.0;
	end
	else
	begin
	    if @FixedPrice is null 
	    begin
	    	set @Price = @Price * @DefaultFraction * @LectureFactor;
	    	set @DiscountAmount = @Price * @DiscountPct / 100;
	    	set @Price = @Price - @DiscountAmount;        
	    end
	    else
	    begin
	    	set @Price = @FixedPrice * @DefaultFraction * @LectureFactor;
	    	set @EditedDefaultPrice = @Price;
	    	set @DefaultPrice = @Price;
	    	set @DiscountAmount = 0.0
	    	set @DiscountPct = 0.0
	    end
		
	end
	
	if @StoryItemOnlyFlag = '1'
		set @EventStatus = 5;
	else
	begin
		if @SpInvolvedFlag = '1'
			set @EventStatus = 2;
		else
		begin
			if @DefaultFlag = 1
				set @EventStatus = 4;
			else
				set @EventStatus = 1;
		end
	end
    
    if @BelongsTo = 3   -- case group, missing kela status
    begin
        if (@KelaStatus is null) or (@KelaStatus < 0)
        begin
            set @KelaStatus = 0;    
            select @KelaStatus=isnull(kela_status,0) from event
            where session_id=@SessionId        
        end
    end
    
	if @KelaStatus = -1
	begin
		select @KelaStatus = isnull(ev1.kela_status, 0)
		from event ev1, event ev2
		where ev1.event_id = ev2.event_id and ev2.session_id = @SessionId and (ev2.item_id = 1 or ev2.item_id = 3);
	end
	
	if @StoryItemType = 2 and @KelaStatus is null
	begin
		set @tmpKelaStatusDefault = dbo.GetSystemParameter('KELA_STATUS_DEFAULT','')
		
		if Len(@tmpKelaStatusDefault) > 0 
			set @KelaStatus = @tmpKelaStatusDefault
	end	

    if @strCreaDate='' or @strCreaDate is null
        set @dtCreaDate=GetDate()
    else
        set @dtCreaDate=convert(datetime,@strCreaDate,104)

	if @FolderTypeId = 1
	begin
		set @KelaDetId = Null
	end
	else
	begin
		set @strKela = convert(nvarchar, @KelaStatus) 
		if len(@strKela) > 1
		begin
			set @KelaStatus = substring(@strKela,1,1)
			set @KelaDetId = substring(@strKela,2,1)
		end			
		else
		begin
			set @KelaDetId = @KelaStatus
		end
	end
	
	exec get_next_id_pro 'EVENT_ID', @EventId output

	insert into event (
		event_id,
		event_status,
		becoming_status,
		session_id,
		unit_id,
		group_id,
		item_id,
		main_client_id,
		org_id,
		client_group_id,
		kela_status,
		kela_code,
		kela_subvention,
		default_price,
		currency,
		code1,
		code2,
		edited_default_price,
		time_factor,
		night_factor,
		amount_factor,
		fraction_factor,
		lecture_factor,
		discount_pct,
		discount_amount,
		price,
		account,
		org_share_pct,
		story_item_type,
		crea_date,
		no_show_flag,
		sp_org_id,
		belongs_to,
		story_item_only_flag,
		account_if_sp,
		account_if_nsp,
		project_id,
        group_meeting_id,
        handling_fee,
        real_unit_id,
        agreement_id,
        kela_det_id
    )
	select
		@EventId,
		@FinalEventStatus,
		@EventStatus,
		@SessionId,
		@UnitId,
		group_id,
		item_id,
		@ClientId,
		@OrgId,
		@ClientGroupId,
		@KelaStatus,
		kela_code,
		kela_subvention,
		@DefaultPrice,
		1, 
		code1,
		code2,
		@EditedDefaultPrice, 
		1, 
		1, 
		1, 
		@DefaultFraction, 
		@LectureFactor, 
		@DiscountPct, 
		@DiscountAmount, 
		@Price, 
		account_if_nsb,
		org_share_pct,
		story_item_type,
		@dtCreaDate,
		'0',
		sp_org_id_default,
		@BelongsTo,
		@StoryItemOnlyFlag,
		@AccountIfSp,
		@AccountIfNSp,
		NULL,
        @GroupMeetingId,
        '0.00',
        @UnitId,
        @PriceListId,
        @KelaDetId     
	from bd_event_type
	where item_id = @ItemId;

-- Insert a record into EVENT_INPROGRESS (the trigger not needed anymore), 23 Oct 2003 / P Heimonen

	insert into dbo.event_inprogress (
		personnel_id, 
		event_id, 
		item_id)
	values (
		@PersonnelId,
		@EventId,
		@ItemId
	)

	if @SpInvolvedFlag = '1'
		select @SpOrgId = sp_org_id from event where event_id = CAST(@EventId as nvarchar(30));

	set @EventStatus = 0;

	exec insert_EVENT_UNIT_TREE @UnitId, @EventId, 1

	if @BelongsTo = 1
	begin
		insert into event_client (
			client_id,
			event_id)
		values (
			@ClientId,
			@EventId);

		exec handleEventsCategoryLists @ClientId, @EventId, @OrgId;
	end

	insert into event_status_log (
		event_id,
		event_status,
		status_date,
		personnel_id,
		prof_code)
	values (
		@EventId,
		@EventStatus,
		current_timestamp,
		@PersonnelId,
		@ProfCode);

	insert into event_author (
		event_id,
		personnel_id,
		share)
	values (
		@EventId,
		@PersonnelId,
		100);

	set @EventStatus = 1;

	insert into event_status_log (
		event_id,
		event_status,
		status_date,
		personnel_id,
		prof_code)
	values (
		@EventId,
		@EventStatus,
		current_timestamp,
		@PersonnelId,
		@ProfCode);

	if @BelongsTo = 1
	begin
		if @EventPayerTypeId is not null
		begin
			if @EventPayerTypeId = 1	-- client
				exec insert_EVENT_PAYER @EventId, null, @EventPayerId, @Price, @UnitId, 0, null, null
			else if @EventPayerTypeId = 2	-- org
				exec insert_EVENT_PAYER @EventId, @EventPayerId, null, @Price, @UnitId, 0, null, null
			else if @EventPayerTypeId = 3	-- payment commitment
			begin	
				--exec insert_EVENT_PAYER_2 @EventId, null, @ClientId, @Price, @UnitId, 0, null, @EventPayerId, null
				select @tmpPayerOrgId = pc.org_id,
					@tmpPayerTypeId = pc.payment_commitment_payer_type_id
				from payment_commitment pc
				where pc.payment_commitment_id = @EventPayerId
		
				if @tmpPayerTypeId > 1 and Not IsNull(@tmpPayerOrgId,-1) = -1
					exec insert_EVENT_PAYER_2 @EventId, @tmpPayerOrgId, null, @Price, @UnitId, 0, null, @EventPayerId, null
				else			
					exec insert_EVENT_PAYER_2 @EventId, null,  @ClientId, @Price, @UnitId, 0, null, @EventPayerId, null
			end
		end
		else
		begin
			if @DefaultFlag = 1 And @OrgId > 0			
				exec insert_EVENT_PAYER @EventId, @OrgId, null, @Price, @UnitId, 0, null, null
			else			
				exec insert_EVENT_PAYER @EventId, null, @ClientId, @Price, @UnitId, 0, null, null
		end
	end
    else
	if @BelongsTo = 2
	begin
		select @PayerOrgId = ext_payer_id
		from org_client oc
		where oc.org_id = @OrgId;

		if isnull(@PayerOrgId,0) = 0
			set @PayerOrgId = @OrgId

		exec insert_EVENT_PAYER @EventId, @PayerOrgId, null, @Price, @UnitId, 0, null, null
	end
	else
	if @BelongsTo = 3   -- Group
    begin
        if @GroupMemberId is null
        begin                           -- Group is of price type 1
        	if @OrgId is not null
        	begin
	            set @PayerOrgId=@OrgId
	    		exec insert_EVENT_PAYER @EventId, @PayerOrgId, null, @Price, @UnitId, 0, null, null
        	end
        	else
        	begin
        		exec insert_EVENT_PAYER @EventId, null, @ClientId, @Price, @UnitId, 0, null, null
        	end
        end
        else
        begin                           -- Group is of price type 2 or 3
            if @ClientId is not null            -- Payer_type=1
        		exec insert_EVENT_PAYER @EventId, null, @ClientId, @Price, @UnitId, 0, null, null
            else
            begin
                set @PayerOrgId=@OrgId
        		exec insert_EVENT_PAYER @EventId, @PayerOrgId, null, @Price, @UnitId, 0, null, null
            end

            if @GroupMeetingId is null
                update group_meeting_client
                set event_id=convert(nvarchar,@EventId)
                where group_member_id=@groupMemberId
            else
                update group_meeting_client
                set event_id=convert(nvarchar,@EventId)
                where group_member_id=@groupMemberId
                    and group_meeting_id=@GroupMeetingId
        end
    end

	if @SpInvolvedFlag = '1'
	begin
		set @EventStatus = 2;

		insert into event_status_log (
			event_id,
			event_status,
			status_date,
			personnel_id,
			prof_code)
		values (
			@EventId,
			@EventStatus,
			current_timestamp,
			@PersonnelId,
			@ProfCode);
	end
	else
	begin
		if @DefaultFlag = 1
		begin
			set @EventStatus = 3;

			insert into event_status_log (
				event_id,
				event_status,
				status_date,
				personnel_id,
				prof_code)
			values (
				@EventId,
				@EventStatus,
				current_timestamp,
				@PersonnelId,
				@ProfCode);

			set @EventStatus = 4;

			insert into event_status_log (
				event_id,
				event_status,
				status_date,
				personnel_id,
				prof_code)
			values (
				@EventId,
				@EventStatus,
				current_timestamp,
				@PersonnelId,
				@ProfCode);
		end
	end

	if @StoryItemOnlyFlag = '1'
	begin
		set @EventStatus = 5;

		insert into event_status_log (
			event_id,
			event_status,
			status_date,
			personnel_id,
			prof_code)
		values (
			@EventId,
			@EventStatus,
			current_timestamp,
			@PersonnelId,
			@ProfCode);
	end

-- An event status was passed to this procedure
    if @FinalEventStatus<>0
		insert into event_status_log (
			event_id,
			event_status,
			status_date,
			personnel_id,
			prof_code)
		values (
			@EventId,
			@FinalEventStatus,
			current_timestamp,
			@PersonnelId,
			@ProfCode);

	declare @StoryItemId integer;

    set @StoryItemId=-1

    if @CreateST<>0
    begin
    	if @StoryItemType = 1
    	begin
    		exec create_new_story_item_type_1 @EventId, @PersonnelId, @StoryItemId output;
    		update event set story_item_id = @StoryItemId
    		where event_id = CAST(@EventId as nvarchar(30));
    	end
    
    	if @StoryItemType = 2
    	begin
    		exec create_new_story_item_type_2 @EventId, @StoryItemId output;
    		update event set story_item_id = @StoryItemId
    		where event_id = CAST(@EventId as nvarchar(30));
    	end
    
    	if @StoryItemType = 3
    	begin
    		exec create_new_story_item_type_3 @SessionId, @ClientId, @Lang, @StoryItemId output;
    	end
    	if @StoryItemType = 4
    	begin
    		exec create_new_story_item_type_4 @EventId, @ItemId, @StoryItemId output;
    	end
    	if @StoryItemType = 5
    	begin
    		exec create_new_story_item_type_5 @StoryItemId output;
    	end
    	if @StoryItemType = 6
    	begin
    		exec create_new_story_item_type_6 @StoryItemId output;
    	end
    	if @StoryItemType = 7
    	begin
    		exec create_new_story_item_type_7 @SpOrgId, @ItemId, @Lang, @SessionId, @PersonnelId, @StoryItemId output;
    	end
    	if @StoryItemType = 9
    	begin
    		exec create_new_story_item_type_9 @OrgId, @SessionId, @StoryItemId output;
    	end
    	if @StoryItemType = 10
    	begin
    		exec create_new_story_item_type_10 @SessionId, @EventId, @StoryItemId output;
    	end
    	if @StoryItemType = 11
    	begin
    		exec create_new_story_item_type_11 @StoryItemId output;
    	end
    	if @StoryItemType = 12
    	begin
    		exec create_new_story_item_type_12 @SessionId, @ClientId, @OrgId, @StoryItemId output;
    	end
    	if @StoryItemType = 13
    	begin
    		exec create_new_story_item_type_13 @StoryItemId output;
    	end
    	if @StoryItemType = 14
    	begin
    		exec create_new_story_item_type_14 @StoryItemId output;
    	end
    	if @StoryItemType = 16
    	begin
    		exec create_new_story_item_type_16 @StoryItemId output;
    	end
    	if @StoryItemType = 17
    	begin
    		exec create_new_story_item_type_17 @StoryItemId output;
    	end
    	if @StoryItemType = 18
    	begin
    		exec create_new_story_item_type_18 @StoryItemId output;
    	end
    	if @StoryItemType = 19
    	begin
    		exec create_new_story_item_type_19 NULL, @StoryItemId output;
    	end
    	if @StoryItemType = 21
    	begin
    		exec create_new_story_item_type_21 @ItemId, @PersonnelId, @UnitId, @StoryItemId output;
    	end
    	if @StoryItemType = 22
    	begin
    		exec create_new_story_item_type_22 @PersonnelId, @OrgId, @StoryItemId output;
    	end
    	if @StoryItemType = 24
    	begin
    		exec create_new_story_item_type_24 @SpOrgId, @ItemId, @Lang, @SessionId, @PersonnelId,@IncomingReferralFlag,@UnitId, @StoryItemId output;
    	end
    	if @StoryItemType = 25
    	begin
    		exec create_new_story_item_type_25_typed @itemId, @StoryItemId output;
    	end
    	if @StoryItemType = 26
    	begin
    		exec create_new_story_item_type_26 @StoryItemId output;
    	end
    	if @StoryItemType = 27
    	begin
    		exec create_new_story_item_type_27 @SpOrgId, @ItemId, @Lang, @SessionId, @PersonnelId, @StoryItemId output;
    	end
    	if @StoryItemType = 28
    	begin
    		exec create_new_story_item_type_28 @StoryItemId output;
    	end
		if @StoryItemType = 29
		begin
			exec create_new_story_item_type_29 @ItemId, @StoryItemId output;
		end
    	if @StoryItemType = 30
    	begin
    		exec create_new_story_item_type_30  @Lang, @SessionId, @ClientId, @StoryItemId output;
    	end
    	if @StoryItemType = 31
		begin
			exec create_new_story_item_type_31  @StoryItemId output;
		end
    	if @StoryItemType = 32
    	begin
    		exec create_new_story_item_type_32  @StoryItemId output;
    	end
    	if @StoryItemType = 33
    	begin
    		exec create_new_story_item_type_33  @StoryItemId output;
    	end
    	if @StoryItemType = 34
    	begin
    		exec create_new_story_item_type_34  @StoryItemId output;
    	end
    	if @StoryItemType = 36
    	begin
    		exec create_new_story_item_type_36  @StoryItemId output;
    	end
    	if @StoryItemType = 37
    	begin
    		exec create_new_story_item_type_37  @StoryItemId output;
    	end
    	if @StoryItemType = 39
    	begin
    		exec create_new_story_item_type_39  @StoryItemId output;
    	end
	if @StoryItemType = 41
	begin
		exec create_new_story_item_type_41  @StoryItemId output;
	end
    	if @StoryItemType = 1001
    	begin
    	    exec create_new_story_item_type_1001  @StoryItemId output;
    	end
    	if @StoryItemType >= 3 and @StoryItemType <> 8 and @StoryItemType <> 22
    	begin
    		exec copy_patient_and_personnel_info @StoryItemId, @ClientId, @OrgId, @PersonnelId, @UnitId, @Lang;
    
    		update event set story_item_id = @StoryItemId
    		where event_id = CAST(@EventId as nvarchar(30));
    	end
    	else
    	if @StoryItemType = 22
    	begin
    	    exec copy_organisation_and_personnel_info @StoryItemId, @OrgId, @PersonnelId, @UnitId, @Lang;
    
    		update event set story_item_id = @StoryItemId
    		where event_id = CAST(@EventId as nvarchar(30));
    	end
    
    -- added Oct 17, 2002 to maintain string format presentation of StoryItems. P Heimonen.
    	
    	if @StoryItemType > 0
    	begin
    		insert into story_item_as_string (
    			story_item_id,
    			row_nbr,
    			story_item_type,
    			story_as_string,
    			lang_code)
    		values (
    			@StoryItemId,
    			1,
    			@StoryItemType,
    			@ItemDescr+':',
    			@Lang
    		)
    	end
    end     -- @CreateST<>0	
-- end add

	exec dbo.calculatePrice @EventId
	
	select @EventId, @StoryItemType, @StoryItemId;

	set @outEventId = @EventId;
	SET @strOutEventId = CONVERT(NVARCHAR, @outEventId)

-- do not use cursor
	if @noRecurseFlag = 0
	begin
		IF @PackageHeader = '1'
		begin
		
			DECLARE @tmpOrderNbr  INTEGER

			SELECT TOP 1
					@tmpItemID = package_item_id,
					@tmpOrderNbr = package_order_nbr
				FROM package_event_type
				WHERE item_id = @ItemId
				ORDER BY package_order_nbr

            WHILE @tmpItemID IS NOT NULL
             BEGIN
             	if @KelaDetId >= 0
             		set @KelaStatus = convert(integer,@strKela)
             		
				exec create_event_from_pkg @SessionId,
									@PersonnelId,
									@UnitId,
									@tmpItemID,
									@KelaStatus,
									@BelongsTo,
									@ClientId,
									@OrgId,
									@DefaultFlag,
									@Lang,
									1,
									@strOutEventId

				SET @tmpItemID = NULL

				SELECT TOP 1
						@tmpItemID = package_item_id,
						@tmpOrderNbr = package_order_nbr
					FROM package_event_type
					WHERE
						item_id = @ItemId
						AND package_order_nbr > @tmpOrderNbr
					ORDER BY package_order_nbr
             END
		end
    end
    
if (1=2) -- use cursor
begin
	if @noRecurseFlag = 0
	begin

		IF @PackageHeader = '1'
		begin
-- This done by Peksi due to strange previous behaviour...


-- new fix to get index usage right 27 Nov 2002
			SELECT package_item_id
				INTO #temp
				FROM package_event_type
				WHERE item_id = @ItemId
				ORDER BY package_order_nbr

			declare EventCurse cursor for
				select item_id from #temp order by item_id;

			open EventCurse;
			fetch next from EventCurse into @tmpItemID;

			set @strTmp = '';
			while (@@FETCH_STATUS = 0)
			begin
				if len(@strTmp) > 0
				begin
					set @strTmp = @strTmp + ',' + cast(@tmpItemId as varchar)
				end
				else
				begin
					set @strTmp = cast(@tmpItemId as varchar)
				end

				fetch next from EventCurse into @tmpItemID;
			end

			close EventCurse;
			deallocate EventCurse;

-- Drop needed for the fix above
			drop table #temp

			set @iLoop = 0;

			while len(@strTmp) > 0 and @iLoop < 100
			begin
				set @iPos = charindex(',', @strTmp);
				if @iPos > 0
				begin
					set @tmpItemId = cast(substring(@strTmp,1,@iPos-1) as int)
					set @strTmp = substring(@strTmp, @iPos+1, len(@strTmp) - @iPos)
				end
				else
				begin
					set @tmpItemId = cast(substring(@strTmp,1, len(@strTmp)) as int)
					set @strTmp = ''
				end

				set @iLoop = @iLoop + 1;

				if @tmpItemId <> @ItemId
				begin
					exec create_event_from_pkg @SessionId,
										@PersonnelId,
										@UnitId,
										@tmpItemID,
										@KelaStatus,
										@BelongsTo,
										@ClientId,
										@OrgId,
										@DefaultFlag,
										@Lang,
										1,
										@strOutEventId
				end
			end
		end
	end
end -- use cursor	

    if @EventId > 0 
    begin
    	exec store_classification @EventId,
        	@ClientId,
        	@OrgId,
        	@PersonnelId;
    end
...
Рейтинг: 0 / 0
commandTimeout не работает.
    #36134864
sb.vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И выполняется как CommandText a не Store Procedure.
...
Рейтинг: 0 / 0
commandTimeout не работает.
    #36134990
stimpi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код клиента нужно было показывать, а не хранимки
...
Рейтинг: 0 / 0
commandTimeout не работает.
    #36135242
sb.vector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
аа..код клиента стандартен:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
   
             
    SqlCommand command = new SqlCommand();
    string query = "SET STATISTICS TIME ON create_event 'xxx','xxx','xxx' ";
    command.Connection = _standardServerCon;
   
    command.CommandText = query;
    command.CommandTimeout = 10;

   _standardRowsCount = command.ExecuteNonQuery();
...
Рейтинг: 0 / 0
commandTimeout не работает.
    #36135301
stimpi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 try
            {
                using (SqlConnection sqlConn = new SqlConnection(conn.ConnectionString))
                {
                    sqlConn.Open();
                    SqlCommand command = new SqlCommand("WAITFOR DELAY '0:0:5' SELECT 1", sqlConn);
                    command.CommandTimeout = 2;

                    command.ExecuteNonQuery();
                }
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
странно все это, в примере кидает исключение. Вы смотрели в отладке какое значение таймаута у команды ? Где вы открываете соединение, возможно у вас стоит большой таймаут на соединении и он дает больше ожидаемой задержки.
Еще стоит учесть (это не ваш случай): как только запрос начинает возвращать результат, ограничение на задержку перестает действовать.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / commandTimeout не работает.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]