ข้อผิดพลาดข้อบทบาทของแอพลิเคชัน sql กับ OLE DB ทรัพยากรร่วมกัน

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 229564 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

เมื่อคุณเปิดใช้งานสำหรับบทบาทแอพลิเคชันของ sql server บนการเชื่อมต่อของออปเจ็กต์ข้อมูล ActiveX ของ Microsoft (ADO) กับ SQL Server คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณเชื่อมต่อกับ SQL Server 7.0:
sp_setapprole มีการเรียกใช้ไม่ถูกต้อง ดูเอกสารประกอบสำหรับข้อมูลเพิ่มเติม
เมื่อคุณเชื่อมต่อกับ SQL Server 2000 ข้อผิดพลาดอาจปรากฏขึ้นเป็นดังนี้:
[dbnetlib][ConnectionRead (WrapperRead())]ข้อผิดพลาดของเครือข่ายทั่วไป ตรวจสอบเอกสารประกอบของเครือข่ายของคุณ
ข้อผิดพลาดนี้เกิดขึ้นเมื่อมีเรียก sp_setapprole บนการเชื่อมต่อ ADO ที่ได้ถูกจัดสรรจากพูทรัพยากรของ OLE DB ข้อผิดพลาดนี้เกิดขึ้นกับผู้ให้บริการ SQLOLEDB หรือ ODBC ของเซิร์ฟเวอร์ SQL โปรแกรมควบคุม

มีข้อจำกัดที่อธิบายไว้ในบทความนี้ยังอยู่ใน.Net SQL Server ผู้ให้บริการข้อมูล และ ใน.Net OLE DB ผู้ให้บริการข้อมูลเมื่อใช้กับผู้ที่ SQLOLEDB OLE DB ให้ เมื่อคุณพยายามที่จะตั้งค่าบทบาทของแอพลิเคชันสำหรับการเชื่อมต่อที่มีลากจากประเภทการเชื่อมต่อ คุณได้รับข้อความแสดงข้อความแสดงข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาดของเครือข่ายทั่วไป

สาเหตุ

ไม่ในการออกแบบปัจจุบัน หลังจากที่เปิดใช้งานบนการเชื่อมต่อไคลเอนต์กับ SQL Server บทบาทของแอพลิเคชันคุณสามารถรีเซ็ตบริบทการรักษาความปลอดภัยของการเชื่อมต่อ ดังนั้น เมื่อผู้ใช้สิ้นสุดเซสชันของ SQL Server และ disconnects จากเซิร์ฟเวอร์ เซสชันที่ไม่ได้ reusable อย่างไรก็ตาม OLE DB ทรัพยากรร่วมกันกลับปิดการเชื่อมต่อไปพู และข้อผิดพลาดเกิดขึ้นเมื่อการเชื่อมต่อถูก reused และแอพลิเคชันไคลเอนต์พยายามตั้งค่าบริบทการรักษาความปลอดภัยของการเชื่อมต่อ โดย sp_setapprole เรียกอีกครั้ง

การหลีกเลี่ยงปัญหา

วิธีแก้ปัญหาที่พร้อมใช้งานเท่านั้นที่มีการ ปิดใช้งาน OLE DB ทรัพยากร Pooling ซึ่ง ADO ใช้ตามค่าเริ่มต้น คุณสามารถทำได้ โดยการเพิ่ม "บริการ OLE DB =-2 " กับสายอักขระการเชื่อมต่อ ADO ตามที่แสดงต่อไปนี้:
'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"
				

Pooling สามารถปิดใช้งานสำหรับ.Net SQL Server ข้อมูลผู้ให้บริการ โดยการเพิ่ม " Pooling =เท็จ" กับสายอักขระการเชื่อมต่อได้

ข้อมูลเพิ่มเติม

รหัสต่อไปนี้ reproduces ข้อผิดพลาด:
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
				

อ้างอิง:

สมุดบัญชี SQL แบบออนไลน์ หัวข้อ: "แอพลิเคชันความปลอดภัยและแอพลิเคชันบทบาท"

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปิดการใช้งานของบริการ OLE DB ดูบทความด้านเทคนิคส่วน "รวมในใน Microsoft Data Access ประกอบ พร้อมใช้งานในแบบออนไลน์ของ MSDN:
http://msdn2.microsoft.com/en-us/library/ms810829.aspx
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการปิดใช้งานบริการ OLE DB ให้ดูที่แฟ้ม OLE DB Readme.txt

คุณสมบัติ

หมายเลขบทความ (Article ID): 229564 - รีวิวครั้งสุดท้าย: 8 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • 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
Keywords: 
kbpending kbprb kbmt KB229564 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:229564

ให้ข้อเสนอแนะ

 

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