Wulin.com (www.vevb.com) ในกระบวนการเขียนแอปพลิเคชัน WEB เรามักจะต้องจัดการกับฐานข้อมูล เช่น ฐานข้อมูล ACCESS, SQL SERVER เป็นต้น ที่เราใช้งานเป็นประจำทุกวัน เมื่อเชื่อมต่อกับฐานข้อมูลเหล่านี้ ระบบมักจะแจ้งข้อผิดพลาด 80004005 เช่นนี้แก่เรา เพื่ออำนวยความสะดวกแก่ชาวเน็ตในการแก้ไขปัญหาดังกล่าว บทความนี้จะแนะนำและตอบปัญหาดังกล่าวโดยละเอียด
[ข้อความแสดงข้อผิดพลาด]
ผู้ให้บริการ Microsoft OLE DB สำหรับข้อผิดพลาดของไดรเวอร์ ODBC '80004005'
[Microsoft] [ไดรเวอร์ ODBC Microsoft Access 97] ฐานข้อมูล Microsoft Jet
เอ็นจิ้นไม่สามารถเปิดไฟล์ '(ไม่ทราบ)' ได้ ถูกเปิดไว้โดยเฉพาะแล้ว
โดยผู้ใช้รายอื่น หรือคุณต้องได้รับอนุญาตจึงจะสามารถดูข้อมูลได้
[เหตุผล]
ข้อผิดพลาดนี้เกิดขึ้นเมื่อ IIS ใช้บัญชีที่ไม่ระบุชื่อ (โดยปกติคือ IUSR) ซึ่งเข้าถึงไดเร็กทอรีที่ฐานข้อมูลอยู่ใน NT
ไม่มีสิทธิ์ที่ถูกต้อง
[สารละลาย]
1. ตรวจสอบสิทธิ์ของไฟล์และไดเร็กทอรี ตรวจสอบให้แน่ใจว่า Evryone มีสิทธิ์ในการสร้างและลบไฟล์ชั่วคราวในไดเร็กทอรี
2. ตรวจสอบว่าไฟล์แหล่งข้อมูล (DSN) ถูกทำเครื่องหมายว่าถูกใช้โดยโปรแกรมอื่นหรือไม่ โดยปกติแล้วโปรแกรมเหล่านี้จะเป็น Visual InterDev ปิดโครงการใด ๆ ที่กำลังเปิดการเชื่อมต่อฐานข้อมูลใน InterDev
3. ตรวจสอบว่าตารางใน ACCESS เชื่อมต่อกับเซิร์ฟเวอร์เครือข่ายในขณะนี้หรือไม่
[ข้อความแสดงข้อผิดพลาด]
ผู้ให้บริการ Microsoft OLE DB สำหรับข้อผิดพลาดของไดรเวอร์ ODBC '80004005'
[Microsoft] [ไดรเวอร์ ODBC Microsoft Access 97] ไม่สามารถใช้ไฟล์ '(ไม่ทราบ)';
ใช้งานอยู่แล้ว
[เหตุผล]
ในการเชื่อมต่อกับฐานข้อมูล ACCESS จะถูกใช้งานและฐานข้อมูลถูกล็อค ทำให้ไม่สามารถเข้าถึงได้
[ข้อความแสดงข้อผิดพลาด]
ผู้ให้บริการ Microsoft OLE DB สำหรับข้อผิดพลาดของไดรเวอร์ ODBC '80004005'
[Microsoft] [ODBC Driver Manager] ไม่พบชื่อแหล่งข้อมูลและไม่มีค่าเริ่มต้น
ระบุไดรเวอร์แล้ว
[เหตุผล]
เหตุผลที่เป็นไปได้คือ ConnectString เริ่มต้นสตริงการเชื่อมต่อแอปพลิเคชันใน global.asa แต่ไฟล์ global.asa ทำงานไม่ถูกต้องในขณะนี้
[สารละลาย]
ตรวจสอบว่าการมอบหมายนั้นถูกต้องหรือไม่และเพิ่มโค้ดต่อไปนี้ใน asp:
<%= 'auth_user' คือ & request.servervariables(auth_user)%>
<ป>
<%= 'auth_type' คือ & request.servervariables(auth_type)%>
<ป>
<%= สตริงการเชื่อมต่อคือ & เซสชัน (your_connectionstring)%>
<ป>
อีกเหตุผลหนึ่งก็คือ มีการเพิ่มช่องว่างใน ConnectString เป็นต้น
DSN = MyDSN; ฐานข้อมูล = ผับ;
ลองเปลี่ยนเป็นสิ่งนี้:
DSN=MyDSN;ฐานข้อมูล=ผับ;
หากไม่ได้รัน global.asa ให้ตรวจสอบว่าไฟล์อยู่ในไดเร็กทอรีรากของแอปพลิเคชันหรือไดเร็กทอรีรากของไดเร็กทอรีเสมือน
อาจเป็นไปได้ว่าข้อผิดพลาดเกิดขึ้นเนื่องจากไม่พบชื่อ DSN ซึ่งสามารถแก้ไขได้โดยใช้วิธี id=36767 ที่ฉันให้ไว้ ขั้นตอนสุดท้ายคือการตรวจสอบว่าติดตั้งไดรเวอร์ล่าสุดหรือไม่ นั่นคือ MDAC เวอร์ชันล่าสุดหรือไม่
[ข้อความแสดงข้อผิดพลาด]
ผู้ให้บริการ Microsoft OLE DB สำหรับข้อผิดพลาดของไดรเวอร์ ODBC '80004005'
[Microsoft] [ODBC Driver Manager] ชื่อแหล่งข้อมูลไม่ใช่ ??
[เหตุผล]
ข้อผิดพลาดนี้อาจเกิดขึ้นตามลำดับการติดตั้งซอฟต์แวร์ (หรือถอนการติดตั้ง) บนคอมพิวเตอร์ของคุณ ข้อผิดพลาดนี้จะเกิดขึ้นหากเวอร์ชัน ODBC ไม่สอดคล้องกัน
[สารละลาย]
วิธีแก้ไขคือติดตั้ง MDAC เวอร์ชันล่าสุด
[ข้อความแสดงข้อผิดพลาด]
ผู้ให้บริการ Microsoft OLE DB สำหรับข้อผิดพลาดของไดรเวอร์ ODBC '80004005'
[Microsoft] [ไดรเวอร์ไดรเวอร์ ODBC Access 97 ODBC] ข้อผิดพลาดทั่วไปไม่สามารถเปิดได้
คีย์รีจิสทรี 'DriverId'
[เหตุผล]
ข้อผิดพลาดนี้เกิดขึ้นเมื่ออ่านค่าจากรีจิสทรี ใช้ regedit32.exe เพื่อตรวจสอบสิทธิ์ของรีจิสทรี
[ข้อความแสดงข้อผิดพลาด]
ผู้ให้บริการ Microsoft OLE DB สำหรับข้อผิดพลาดของไดรเวอร์ ODBC '80004005'
[Microsoft] [โปรแกรมควบคุมเซิร์ฟเวอร์ ODBC SQL] [dbnmpntw] ConnectionOpen (CreateFile())
[เหตุผล]
เหตุผลหนึ่ง: เมื่อฐานข้อมูลมีความสัมพันธ์ในการอนุญาตบนเครื่องที่แตกต่างกัน สิ่งนี้สามารถเกิดขึ้นบนเครื่องเดียวกันได้ เมื่อมีการตั้งค่าเส้นทาง UNC สำหรับความสัมพันธ์หนึ่งและเส้นทางภายในเครื่องสำหรับความสัมพันธ์อื่น
เหตุผลที่สอง: เมื่อผู้ใช้เข้าสู่ระบบโดยใช้บัญชีที่ไม่ระบุชื่อ IIS เขามีสิทธิ์ในเครื่องท้องถิ่น แต่สำหรับเครื่องที่มีเส้นทาง UNC เครื่องจะไม่คิดว่าบัญชีที่คุณเข้าสู่ระบบโดยไม่ระบุชื่ออยู่ในนั้น นั่นก็ถูกกฎหมายเช่นกัน ด้วยวิธีนี้จะไม่อนุญาตให้คุณเข้าถึงทรัพยากรในนั้นทำให้เกิดข้อผิดพลาด
[สารละลาย]
1. ในเครื่องมือ IIS เปลี่ยนบัญชีที่ไม่ระบุชื่อ IIS เป็นบัญชีที่ใช้โดเมนอื่น (นั่นคืออย่าใช้การเข้าสู่ระบบแบบไม่ระบุชื่อ)
2. หรือสร้างบัญชีเหมือนกับบัญชีที่ไม่ระบุชื่อปัจจุบันบนเครื่องที่คุณต้องการเข้าถึงทรัพยากร และใช้รหัสผ่านเดียวกัน
[ข้อความแสดงข้อผิดพลาด]
ผู้ให้บริการ Microsoft OLE DB สำหรับข้อผิดพลาดของไดรเวอร์ ODBC '80004005' Microsoft [ODBC
ไดรเวอร์ Microsoft SQL] การเข้าสู่ระบบล้มเหลว ()
[เหตุผล]
ข้อผิดพลาดนี้สร้างขึ้นโดย SQL Server เมื่อไม่ยอมรับหรือไม่รู้จักบัญชีเข้าสู่ระบบ หรือไม่ได้เข้าสู่ระบบในฐานะผู้ดูแลระบบ
นอกจากนี้ยังอาจเกิดจากข้อเท็จจริงที่ว่าไม่มีบัญชีการแมป SQL ใน NT
[สารละลาย]
เข้าสู่ระบบด้วยบัญชีผู้ดูแลระบบ (SA) รหัสผ่านทั่วไปควรว่างเปล่า โปรดทราบว่าต้องใช้ CoonectString ในขณะนี้ และไม่สามารถใช้ไฟล์ DSN ได้ เนื่องจากชื่อผู้ใช้และรหัสผ่านไม่ได้ถูกบันทึกไว้ใน DSN ตรวจสอบว่า NT ได้แมปบัญชีกับ SQL หรือไม่
[ข้อความแสดงข้อผิดพลาด]
ผู้ให้บริการ Microsoft OLE DB สำหรับข้อผิดพลาดของไดรเวอร์ ODBC '80004005'
[Microsoft] [โปรแกรมควบคุมเซิร์ฟเวอร์ ODBC SQL] [เซิร์ฟเวอร์ SQL] การเข้าสู่ระบบล้มเหลว - ผู้ใช้: เหตุผล:
ไม่ได้ถูกกำหนดให้เป็นผู้ใช้ที่ถูกต้องของการเชื่อมต่อ SQL Server ที่เชื่อถือได้
[เหตุผล]
ข้อผิดพลาดนี้สร้างขึ้นโดย SQL Server เมื่อไม่ยอมรับหรือไม่รู้จักบัญชีเข้าสู่ระบบ หรือไม่ได้เข้าสู่ระบบในฐานะผู้ดูแลระบบ
นอกจากนี้ยังอาจเกิดจากข้อเท็จจริงที่ว่าไม่มีบัญชีการแมป SQL ใน NT
[สารละลาย]
ใน Enterprise Manager ของ SQL Server ให้เลือก Server/SQL Server/Configure[ASCII
133]/ตัวเลือกความปลอดภัย/มาตรฐาน หากทำงานใน IIS4 ให้ยกเลิกการเลือกตัวเลือกการซิงโครไนซ์รหัสผ่านสำหรับโปรเจ็กต์
[ข้อความแสดงข้อผิดพลาด]
Microsoft OLE DB Provi