Archive for Şubat 2013

Cannot use the ROLLBACK statement within an INSERT-EXEC statement

Şubat 7, 2013

MSSQL de arkadaşımın aldığı bir hata.

Sık karşılaşılan bir durum olmadığı için yazmak istedim.

Bir tabloya yapılan Insert ‘ün,  bir sp’nin exec ‘in sonucu ise ve bu sp exec, içerisinde bir transaction yönetiyorsa, olası bir rollback durumunda bu hata alınmaktadır.

Hatayı üreten yapı aşağıdaki gibidir;

1-) temp bir tablo oluşurun

create table #t ( a int , b int )

2-)Aşağıdaki gibi bir veri kümesi dönen bir sp niz olsun. Bu sp’de transction açıp, Rollback yapacak bir kod bloğu olsun.

create procedure sp
(@startTrx int,
@a int, @b int)
as
begin
select @a, @b union all
select @b, @a

if ( @startTrx = 1 )
begin
begin tran
select @b, @a
rollback
end
end

3-)Aşağıdaki Insert hata üretmez
Insert Into #t
exec sp 0, 2,3

4-)Ama aşağıdaki Insert yukarıdaki hatayı üretir.
Insert Into #t
exec sp 1, 4,5

Çözüm Olarak;
SP de transation yönetmeyin. 😦

Reklamlar

Attempted to read or write protected memory.

Şubat 7, 2013

Ocean’da manuel provizyon ekranı otorizasyon sistemi ile iletişime geçerek işlemi sonuçlandırmaya çalışmaktadır.

Bu iş için C++ uygulamaları ile BaseFwEx adlı bir C# uygulaması üzerinden iletişim kurulmaktadır.

BaseFwEx te UP durumdaki gate’leri buluan foknsiyon, uygun durumda herhangi bir gate bulamazsa hiçbir uyarı/hata vermeden işleme devam etmektedir.

Bu durumda bir sonraki adıma “boş” ip ve port bilgisi geçmekte. Bu da yukarıdaki exception’a yol açmaktadır.

Hatanın tam detayı;

Attempted to read or write protected memory.
This is often an indication that other memory is corrup.

Ocean’daki klasik herşey “yolunda mantığı” 🙂