Düzeltme: erişim ihlali oluşuyor, bir RPC çağrısı yapıldığında biraz geçersiz parametre değeri içerir.

Makale çevirileri Makale çevirileri
Makale numarası: 314128 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
# HATA: 356323 (shiloh_bugs)
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

SQL Profiler izlemesi çalıştırdığınızda SQL Server 2000 Service Pack 2'de (SP2), RPC olayları içeren (RPC: Başlangıç veya RPC: tamamlandı), 9 CNetInputBuffer::Init erişim ihlaline neden oluyor daha büyük bir değere sahip bir bit parametre içeren bir deyim.

SQL Server 2000 Service Pack 1 (SP1), izleme kesildi ve SQL Profiler bir hata iletisi alırsınız, ancak SQL Server'da hiçbir erişim ihlali oluşur. Yalnızca parametresinin veri türü, bu sorunla ilgili Tablo sütunun veri türü; ilgisizdir.

Not: Tablo sütun bit dışında başka bir tür olabilir.

SQL Server 2000 SP2 (8.00.534) aşağıdaki yığın dökümü oluşturur:
   Short Stack Dump

   00410B23 Module(sqlservr+00010B23) (CNetInputBuffer::Init+0000005C)
   004B7422 Module(sqlservr+000B7422) (CNetInputStream::FAddEventFragment+0000005E)
   00639EB1 Module(sqlservr+00239EB1) (PcnisGetRpcTraceInput+000004BB)
   0063A2C1 Module(sqlservr+0023A2C1) (PostRPC+000000AB)
   00605A07 Module(sqlservr+00205A07) (execrpc+0000095E)
   00437E05 Module(sqlservr+00037E05) (execute_rpc+00000019)
   00410E73 Module(sqlservr+00010E73) (process_commands+00000210)
   41073379 Module(UMS+00003379) (ProcessWorkRequests+0000024A)
   41073071 Module(UMS+00003071) (ThreadStartRoutine+000000BD)
   7800A27B Module(MSVCRT+0000A27B) (beginthread+000000CE)
   77E8758A Module(KERNEL32+0000758A) (SetFilePointer+0000018A)
				

Çözüm

Hizmet paketi bilgileri

Bu sorunu gidermek için <a0></a0>, Microsoft SQL Server 2000 için en son hizmet paketini edinin. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
290211En son SQL Server 2000 hizmet paketi nasıl elde edilir

Düzeltme bilgileri

Not: aşağıdaki düzeltmeyi Microsoft SQL Server 2000 Service Pack 3'ün yayımlanmasından önce oluşturulmuştur.

Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yenisi) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve Saat aracında saat dilimi sekmesini kullanın.
   Date         Version    Size     File name
   ------------------------------------------------

   12-DEC-2001  8.00.552   7,442,513  Sqlservr.exe
				
Not: Dosya bağımlılıkları nedeniyle, en son düzeltme veya özellik, bu dosyaları içeren ek dosyalar da içerebilir.


Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır. Bu sorun ilk olarak Microsoft SQL Server 2000 Service Pack 4'te giderilmiştir.

Daha fazla bilgi

Erişim ihlali üretmek için <a0></a0>, RPC olayları en az birini içeren bir SQL Profiler izlemesi çalıştırın (RPC: Başlangıç veya RPC: tamamlandı), ve sonra da aşağıdaki C kodu çalıştırın:
	long int myBitStatus=0xff; //Invalid value

	SQLRETURN   retcode;
	SQLHENV     henv = NULL;
	SQLHDBC     hdbc = NULL;
	SQLHSTMT    hstmt = NULL;

	PTSTR       szDataSource = _T("localserver");
	PTSTR       szUID = _T("sa");
	PTSTR       szPWD = _T("sa_password");

	if (SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv) == SQL_ERROR)
		return 1;
	SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*) SQL_OV_ODBC3,
	SQL_IS_INTEGER);

	if (SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc) == SQL_ERROR)
		return 1;

	if (SQLConnect(hdbc, (SQLTCHAR*) szDataSource, SQL_NTS,
	(SQLTCHAR*) szUID, SQL_NTS, (SQLTCHAR*) szPWD, SQL_NTS) == SQL_ERROR)
		return 1;

	if (SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt) == SQL_ERROR)
		return 1;

	retcode = SQLAllocHandle(hstmt, hdbc, &hstmt);
	retcode=SQLBindParameter(hstmt, 
				 1, 
				 SQL_PARAM_INPUT, 
				 SQL_C_BIT,
				 SQL_BIT, 
				 1, 
				 0, 
				 &myBitStatus, 
				 0, 
				 &myBitStatus);

	if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
	{
		retcode = SQLExecDirect (hstmt, "SELECT au_id FROM pubs.dbo.authors WHERE contract = ?", SQL_NTS);
	}
				
Sunucu, SQL Server 2000 SP2 çalışıyorsa bu erişim ihlali oluşur; bu sorun SQL Profiler aracının sürüm etkilemez.

Özellikler

Makale numarası: 314128 - Last Review: 3 Şubat 2014 Pazartesi - Gözden geçirme: 5.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Service Pack 2
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbbug kbfix kbsqlserv2000presp3fix KB314128 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:314128

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com