SQL aplikasi peran kesalahan dengan OLE DB sumber daya pooling

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 229564 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Ketika Anda mengaktifkan peran aplikasi SQL Server di Objek Data ActiveX Microsoft (ADO) koneksi ke SQL Server, Anda mungkin menerima pesan galat berikut ketika Anda menghubungkan ke SQL Server 7.0:
sp_setapprole tidak dijalankan dengan benar. Merujuk kepada dokumentasi untuk informasi lebih lanjut.
Ketika Anda menghubungkan ke SQL Server 2000, kesalahan mungkin muncul sebagai berikut:
[DBNETLIB][ConnectionRead (WrapperRead()).]Kesalahan umum jaringan. Periksa Anda jaringan dokumentasi
Kesalahan ini terjadi bila sp_setapprole disebut ADO koneksi yang telah dialokasikan dari kolam sumber daya OLE DB. Galat ini terjadi dengan penyedia SQLOLEDB atau SQL Server ODBC driver.

Pembatasan yang dijelaskan dalam artikel ini juga ada dalam SQL Server.Bersih penyedia Data, dan dalam OLE DB.Bersih Data Provider ketika digunakan dengan SQLOLEDB OLE DB penyedia. Ketika Anda mencoba untuk menetapkan peran aplikasi pada sambungan yang diambil dari koneksi kolam renang, Anda menerima pesan galat berikut:
Kesalahan umum jaringan

PENYEBAB

Dalam desain saat ini, setelah peran aplikasi diaktifkan pada klien koneksi ke SQL Server, Anda tidak dapat mereset konteks keamanan hubungan itu. Oleh karena itu, ketika pengguna berakhir sesi SQL Server dan terputus dari server, sesi ini tidak dapat digunakan kembali. Namun, OLE DB sumber daya penggabungan kembali sambungan tertutup ke kolam renang, dan kesalahan terjadi ketika hubungan itu kembali dan aplikasi klien mencoba untuk me-reset sambungan keamanan konteks dengan menelepon sp_setapprole lagi.

TEKNIK PEMECAHAN MASALAH

Solusi hanya tersedia adalah untuk menonaktifkan OLE DB Resource Penggabungan, ADO yang menggunakan secara default. Anda dapat melakukan ini dengan menambahkan "OLE DB layanan =-2 "untuk sambungan ADO string, seperti yang ditunjukkan di sini:
'For SQLOLEDB provider
 'strConnect = "Provider=SQLOLEDB;server=SQL7Web;OLE DB Services = -2;uid=AppUser;pwd=AppUser;initial catalog=northwind"

' For MSDASQL provider 
'strConnect = "DSN=SQLNWind;UID=Test;PWD=Test; OLE DB Services= -2"
				

Penggabungan dapat dinonaktifkan untuk SQL Server.Data bersih Penyedia dengan menambahkan "Pooling = False" untuk rangkaian sambungan.

INFORMASI LEBIH LANJUT

Kode berikut mereproduksi kesalahan:
Private Sub Command2_Click()
 Dim adoCn1 As ADODB.Connection
 Dim adoCn2 As ADODB.Connection

 Set adoCn1 = GetConnection
 
 Set adoCn2 = GetConnection
 Set adoCn2 = Nothing
 Set adoCn2 = GetConnection
 Set adoCn2 = Nothing
 Set adoCn2 = GetConnection  'Gives errors for both SQLOLEDB and ODBC
 Set adoCn2 = Nothing
End Sub

Private Function GetConnection() As ADODB.Connection
 Dim cn As ADODB.Connection
 Dim sSQL As String
 Dim strConnect As String

 Set cn = New ADODB.Connection
 
'For OLE DB provider
 strConnect = "Provider=SQLOLEDB;server=myServer;uid=AppUser;pwd=AppUser;initial catalog=northwind"

'Turn off Pooling ( all other services are enabled )
'strConnect = "Provider=SQLOLEDB;server=myServer;OLE DB Services= -2;uid=AppUser;pwd=AppUser;initial catalog=northwind"
 
 'For ODBC driver
 'strConnect = "DSN=SQLNWind;UID=Test;PWD=Test; "

'Turn off Pooling
'strConnect = "DSN=SQLNWind;UID=Test;PWD=Test; OLE DB Services= -2"

cn.ConnectionString = strConnect
cn.Open
 
 sSQL = "sp_setapprole 'order_entry', 'password'"
 cn.Execute sSQL
 Set GetConnection = cn
End Function
				

REFERENSI

SQL buku secara Online; topik: "aplikasi keamanan dan aplikasi Peran"

Untuk informasi lebih lanjut mengenai penonaktifkan OLE DB layanan, lihat artikel teknis "Pooling di the Microsoft Data akses komponen," tersedia di MSDN Online:
http://msdn2.Microsoft.com/en-us/library/ms810829.aspx
Untuk informasi lebih lanjut tentang cara mematikan layanan OLE DB, lihat OLE DB Readme.txt file.

Properti

ID Artikel: 229564 - Kajian Terakhir: 23 September 2011 - Revisi: 5.0
Berlaku bagi:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
Kata kunci: 
kbpending kbprb kbmt KB229564 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:229564

Berikan Masukan

 

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