DSN ที่ระบุมีสถาปัตยกรรมที่ไม่ตรงกันระหว่างไดรเวอร์และแอปพลิเคชัน JAVA


86

ฉันพยายามเชื่อมต่อกับฐานข้อมูลที่สร้างโดย MS Access โดยใช้ Java แต่ดูเหมือนจะไม่สามารถจัดการได้ ฉันใช้ ODBC และได้รับข้อยกเว้นนี้:

java.sql.SQLException: [Microsoft] [ODBC Driver Manager] DSN ที่ระบุมีสถาปัตยกรรมที่ไม่ตรงกันระหว่างไดรเวอร์และโปรแกรมประยุกต์

Java ของฉัน:

package javaapplication2;

import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;


/**
 *
 * @author Owner
 */
public class JavaApplication2 {

    /**
     * @param args the command line arguments
     * 
     */


    public static void main(String[] args) {
        // TODO code application logic here
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String sourceURL = new String("jdbc:odbc:myDatabase");
            System.out.println(sourceURL);
            Connection dbConnection = DriverManager.getConnection(sourceURL,"admin","");

            Statement myStmt  = dbConnection.createStatement();

            String query = "INSERT INTO People(ID, Name, Surname, Age, Contact, Location, Course) VALUES"
                    + " (1007, 'Elroy', 'Smith', '33', 21366688, 'Somewhere', 'somecourse')";

            myStmt.executeUpdate(query);

            ResultSet results = myStmt.executeQuery("SELECT * FROM People");

            while(results.next())
            {
                System.out.print(results.getString(1));
                System.out.print(results.getString(2));
                System.out.print(results.getString(3));
                System.out.println(results.getString(4));

            }

            results.close();

        }
        catch(ClassNotFoundException cnfe)
        {
            System.out.println(cnfe);
        }
        catch(SQLException sqle)
        {
            System.out.println(sqle);
        }
    }
}

2
คุณใช้ jvm 64 บิตหรือไม่? ถ้าเป็นเช่นนั้นคุณต้องมีไดรเวอร์ odbc 64 บิต
dogbane

1
ใช่ฉันคิดว่าฉันเป็น ฉันพบ odbc เวอร์ชัน 64 บิตใน C: \ Windows \ SysWOW64 แต่ไม่ใช่ตัวเดียวกับที่แผงควบคุมเปิด
user1028408

ไม่สามารถติดตั้งไดรเวอร์ 64 บิตได้เนื่องจากผลิตภัณฑ์สำนักงานอื่น ๆ ของฉันคือ 32 บิต: /
DavidVdd

คำตอบ:


130

ไม่มีสิ่งเหล่านี้สำหรับฉัน ฉันพบคำตอบใน MSDN มีคำใบ้ถึงมัน สถาปัตยกรรมในข้อผิดพลาดหมายถึง 32 vs 64 บิต วิธีแก้ปัญหาของฉันคือการค้นหาว่าแอปของฉันทำงานภายใต้ (Access) ซึ่ง 2010 คือ 32b ฉันพบสิ่งนี้โดยดูในแท็บกระบวนการของตัวจัดการงานซึ่งกระบวนการ 32b ทั้งหมดมี * 32 ต่อท้ายชื่อ ตามที่กล่าวไว้แผงควบคุมจะเปิดODBC เวอร์ชัน64บิตจากที่นี่

c:\windows\system32\odbcad32.exe

และเวอร์ชัน 32 บิตอยู่ที่นี่:

c:\windows\sysWOW64\odbcad32.exe (ง่ายที่สุดในการคัดลอกและวางลงในกล่องโต้ตอบเรียกใช้)

ดังนั้นฉันจึงตั้งค่า DSN ด้วยชื่อที่ลงท้ายด้วย 32 และ 64 ในแต่ละแผงควบคุม ODBC (ผู้ดูแลระบบ AKA) ที่เกี่ยวข้องซึ่งชี้ไปที่สิ่งเดียวกัน จากนั้นฉันเลือก / เลือกสิ่งที่ถูกต้องโดยพิจารณาว่าแอปที่ใช้เป็น 32b หรือ 64b


ฉันได้ลองรุ่น 64 บิตและเรียกใช้ในฐานะผู้ดูแลระบบ แต่ก็ใช้งานไม่ได้เช่นกัน !!
Fatima Zohra

2
ต้องมีความกลมกลืนกัน หากแอปเป็น 32 จะต้องมีการกำหนดค่า 32 บิต หากแอปเป็น 64 คุณต้องมีแอปที่เป็น 64 ฉันไม่ได้ลองสร้างการกำหนดค่าด้วยชื่อเดียวกันเพราะฉันไม่ต้องการให้พวกเขาซิงค์กัน (ลืมเปลี่ยนทั้งสองอย่างพร้อมกัน) คุณให้ข้อมูลไม่เพียงพอที่จะพยายามเสนอข้อเสนอแนะ ฉันหวังว่าคุณจะคิดออก (ทำไมพวกเขาไม่ทำสิ่งที่ง่ายมากและสร้างแอพ 64 บิตหนึ่งตัวที่กำหนดค่าสภาพแวดล้อมทั้ง 64 และ 32 บิต ???)
Pecos Bill

และตามที่ระบุไว้ด้านล่าง แต่ยังไม่ชัดเจนไดรเวอร์ที่เกี่ยวข้องก็ต้องตรงกัน (น่าจะดีที่สุดในการติดตั้งทั้ง 32 และ 64) แม้ว่าฉันจะไม่คิดว่าคุณสามารถเลือกไดรเวอร์ได้หากไม่ใช่สถาปัตยกรรมที่เหมาะสม
Pecos Bill

สิ่งนี้ยังช่วยให้ฉันถอดรหัสได้ว่าทำไม Excel 32 บิตของฉันไม่สามารถเชื่อมต่อกับ Hadoop Hive Server ของเราโดยใช้ 64 บิต Cloudea Hive ODBC Driver เมื่อฉันเปลี่ยนไปใช้ตัวเชื่อมต่อ 32 บิตมันก็ใช้งานได้ดี!
Mark Vickery

2
เพื่อให้ชัดเจน: คุณไม่สามารถตั้งค่าการเชื่อมต่อ PostgreSQL ODBC 32 บิตผ่าน Windows GUI ปกติบนระบบ 64 บิต คุณจำเป็นต้องปิด ODBC Data Source Administrator แทน (หากเปิดอยู่) เรียกใช้c:\windows\sysWOW64\odbcad32.exeและกำหนดค่าการเชื่อมต่อจากที่นั่น จากนั้นคุณสามารถใช้การเชื่อมต่อนั้นในโปรแกรม 32 บิตเพื่อเข้าถึงฐานข้อมูลได้ในภายหลัง
Ajedi32

26

คุณได้รับข้อผิดพลาดเดียวกันนี้เมื่อพยายามเชื่อมต่อกับฐานข้อมูล MySQL จาก MS-Access เมื่อ Access เวอร์ชันบิต (32 vs 64) ไม่ตรงกัน

  1. เวอร์ชันบิตของไดรเวอร์ ODBC ที่คุณใช้
  2. เวอร์ชันบิตของ ODBC Manager ที่คุณใช้ในการตั้งค่า

สำหรับพวกคุณที่พยายามเชื่อมต่อ MS-Access กับ MySQL บนระบบ Windows 64 บิตฉันต้องเผชิญกับความทรมานอย่างมากที่พยายามทำให้มันทำงานกับทั้ง MS-Access 2010 และ MS-Access 2013 ในที่สุดมันก็ใช้งานได้และนี่คือ บทเรียนที่ฉันได้เรียนรู้ระหว่างทาง:

ฉันซื้อแล็ปท็อป Windows 7, 64 บิตใหม่และฉันมีแอปที่อาศัย MS-Access โดยใช้ตาราง MySQL

  1. ฉันติดตั้ง MySQL เวอร์ชันล่าสุด 5.6 โดยใช้การติดตั้งแพ็คเกจ All In One สิ่งนี้ช่วยให้คุณสามารถติดตั้งทั้งฐานข้อมูลและไดรเวอร์ ODBC พร้อมกันได้ เป็นสิ่งที่ดี แต่ไดรเวอร์ ODBC ที่ติดตั้งดูเหมือนจะเป็น 64 บิตดังนั้นจึงไม่สามารถทำงานกับ MS-Access 32 บิตได้ นอกจากนี้ยังดูเหมือนรถเล็ก ๆ น้อย ๆ - ไม่ใช่อย่างแน่นอน เมื่อคุณเพิ่ม DSN ใหม่ใน ODBC Manager ไดรเวอร์นี้จะปรากฏเป็น "Microsoft ODBC For Oracle" ฉันไม่สามารถทำให้อันนี้ทำงานได้ ฉันต้องติดตั้ง 32 บิตหนึ่งที่กล่าวถึงด้านล่าง

    • MySQL ทำงานได้ดีหลังการติดตั้ง ฉันกู้คืนฐานข้อมูล MySQL ของแอปพลิเคชันตามปกติ ตอนนี้ฉันต้องการเชื่อมต่อโดยใช้ MS-Access


  2. ก่อนหน้านี้ฉันได้ติดตั้ง Office 2013 ซึ่งฉันคิดว่าเป็น 64 บิต แต่เมื่อตรวจสอบเวอร์ชัน (ไฟล์, บัญชี, เกี่ยวกับการเข้าถึง) ฉันเห็นว่าเป็น 32 บิต ทั้ง Access 2010 และ 2013 มักขายเป็นเวอร์ชัน 32 บิต

  3. เครื่องของฉันเป็นเครื่อง 64 บิต ดังนั้นโดยค่าเริ่มต้นเมื่อคุณไปตั้งค่า DSN ของคุณสำหรับ MS-Access และเข้าสู่ ODBC Manager ตามปกติผ่านทางแผงควบคุมตัวเลือกการดูแลระบบคุณจะได้รับตัวจัดการ ODBC 64 บิต คุณไม่มีทางรู้เลย! คุณไม่สามารถบอกได้ นี่มัน gotcha มาก !! เป็นไปไม่ได้ที่จะตั้งค่า DSN จากที่นั่นและเชื่อมต่อกับ MS Access 32 บิตได้สำเร็จ คุณจะได้รับข้อผิดพลาดที่น่ากลัว:

    "dsn ที่ระบุมีสถาปัตยกรรมที่ไม่ตรงกัน ... "

  4. คุณต้องดาวน์โหลดและติดตั้งไดรเวอร์ ODBC 32 บิตจาก MySQL ฉันใช้เวอร์ชัน 3.5.1

    http://dev.mysql.com/downloads/connector/odbc/3.51.html

  5. คุณต้องบอกให้ ODBC Manager ใน Control Panel ทำการไต่เขาและต้องเรียกใช้ ODBC Manager 32 บิตอย่างชัดเจนแทนโดยคำสั่งนี้ดำเนินการที่ Start, Command prompt

    c: \ windows \ sysWOW64 \ odbcad32.exe

    ฉันสร้างทางลัดไปยังสิ่งนี้บนเดสก์ท็อปของฉัน จากที่นี่สร้าง DSN ของคุณด้วยผู้จัดการนี้ จุดสำคัญ: สร้างพวกเขาเป็นระบบ DSNS ไม่ใช่ผู้ใช้ DSNS! สิ่งนี้ทำให้ฉันสะดุดไปชั่วขณะ

    อย่างไรก็ตาม ODBC Manager เวอร์ชัน 64 บิตสามารถเรียกใช้อย่างชัดเจนได้เช่นกัน:

    c: \ windows \ system32 \ odbcad32.exe

  6. เมื่อคุณติดตั้งไดรเวอร์ ODBC 32 บิตจาก MySql แล้วเมื่อคุณคลิกเพิ่มในตัวจัดการ ODBC คุณจะเห็นไดรเวอร์ 2 รายการอยู่ในรายการ เลือก "MySQL ODBC 5.2 ANSI Driver" ฉันไม่ได้ลองใช้ไดรเวอร์ UNICODE


ที่ทำมัน เมื่อคุณกำหนด DSN ของคุณในตัวจัดการ ODBC 32 บิตแล้วคุณสามารถเชื่อมต่อกับ MySQL ได้ตามปกติจากภายใน Access - ข้อมูลภายนอก, ฐานข้อมูล ODBC, ลิงก์ไปยังฐานข้อมูล, เลือกแหล่งข้อมูลของเครื่องและ DSN ที่คุณสร้างไปยัง MySQL ของคุณ ฐานข้อมูลจะอยู่ที่นั่น


2
ฉันคิดว่าคุณเปลี่ยนเส้นทางสำหรับผู้จัดการ ODBC สองคน32 bit: c:\windows\system32\odbcad32.exe 64 bit: c:\windows\sysWOW64\odbcad32.exe
Jrgns

3
@Jrgns ไม่พวกเขาไม่ได้เปลี่ยน sysWOW64เป็นไดเร็กทอรี 32 บิต Windows ชอบที่จะสับสน คุณจะทราบว่าคุณกำลังใช้เวอร์ชันใดอยู่เนื่องจากจะแสดง (32 บิต) หรือ (64 บิต) ในแถบชื่อเรื่องของ ODBC Data Source Administrator
Tim Leaf

8

มีสถาปัตยกรรมที่ไม่ตรงกัน ไดรเวอร์ JDBC และ JDK ของคุณควรเป็นสถาปัตยกรรมเดียวกัน หากคุณใช้ไดรเวอร์ 32 บิตและ JDK ของคุณเป็น 64 บิตคุณจะได้รับข้อผิดพลาดนั้น

ดูสิ่งนี้

แก้ไข: ขึ้นอยู่กับสถาปัตยกรรมของคุณ

คุณจะต้องมีไดรเวอร์ 64 บิตหาก Java ของคุณเป็น 64 บิต

ดาวน์โหลด: http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en


ฉันดาวน์โหลดมาแล้วและลองใช้สตริงการเชื่อมต่อใหม่ตามที่ระบุไว้ในคำแนะนำ แต่ก็ยังใช้งานไม่ได้ บางทีฉันทำอะไรผิด?
user1028408

2

ฉันเห็นคำตอบนี้และได้ผลสำหรับฉัน https://msdn.microsoft.com/en-us/library/ms712362%28v=vs.85%29.aspx

หลังจากที่คุณติดตั้งไดรเวอร์ ODBC จากโปรแกรมตั้งค่าไดรเวอร์แล้วคุณสามารถกำหนดแหล่งข้อมูลได้ตั้งแต่หนึ่งแหล่งขึ้นไป ชื่อแหล่งข้อมูล (DSN) ควรให้คำอธิบายเฉพาะของข้อมูล ตัวอย่างเช่นบัญชีเงินเดือนหรือบัญชีเจ้าหนี้ แหล่งข้อมูลผู้ใช้และระบบที่กำหนดไว้สำหรับไดรเวอร์ที่ติดตั้งในปัจจุบันทั้งหมดจะแสดงรายการในแท็บ User DSN หรือ System DSN ของกล่องโต้ตอบ ODBC Data Source Administrator แหล่งข้อมูลไฟล์ในไดเร็กทอรีที่กำหนดแสดงอยู่ในแท็บ File DSN ไดเร็กทอรีที่จะแสดงจะถูกป้อนในกล่อง Look in ในแท็บ File DSN System_CAPS_noteNote

ในการจัดการแหล่งข้อมูลที่เชื่อมต่อกับไดรเวอร์ 32 บิตภายใต้แพลตฟอร์ม 64 บิตให้ใช้ c: \ windows \ sysWOW64 \ odbcad32.exe ในการจัดการแหล่งข้อมูลที่เชื่อมต่อกับไดรเวอร์ 64 บิตให้ใช้ c: \ windows \ system32 \ odbcad32.exe ในเครื่องมือการดูแลระบบบนระบบปฏิบัติการ Windows 8 64 บิตจะมีไอคอนสำหรับทั้งกล่องโต้ตอบผู้ดูแลแหล่งข้อมูล ODBC 32 บิตและ 64 บิต

หากคุณใช้ odbcad32.exe 64 บิตเพื่อกำหนดค่าหรือลบ DSN ที่เชื่อมต่อกับไดรเวอร์ 32 บิตตัวอย่างเช่น Driver do Microsoft Access (* .mdb) คุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

DSN ที่ระบุมีสถาปัตยกรรมที่ไม่ตรงกันระหว่างไดรเวอร์และแอปพลิเคชัน

ในการแก้ไขข้อผิดพลาดนี้ให้ใช้ odbcad32.exe 32 บิตเพื่อกำหนดค่าหรือลบ DSN

แหล่งข้อมูลเชื่อมโยงไดรเวอร์ ODBC เฉพาะกับข้อมูลที่คุณต้องการเข้าถึงผ่านไดรเวอร์นั้น ตัวอย่างเช่นคุณอาจสร้างแหล่งข้อมูลเพื่อใช้ไดรเวอร์ ODBC dBASE เพื่อเข้าถึงไฟล์ dBASE หนึ่งไฟล์หรือมากกว่าที่พบในไดเร็กทอรีเฉพาะบนฮาร์ดดิสก์ของคุณหรือไดรฟ์เครือข่าย เมื่อใช้ผู้ดูแลแหล่งข้อมูล ODBC คุณสามารถเพิ่มแก้ไขและลบแหล่งข้อมูลดังที่อธิบายไว้ในตารางต่อไปนี้


สวัสดี Bineesh Kumar ช่วยอธิบายให้ฟังหน่อยได้ไหม
Raj Kumar

2

ตามค่าเริ่มต้น Command Prompt จะเชื่อมต่อกับ System32 เรียกใช้พรอมต์คำสั่ง 64 บิตเช่นC:\WINDOWS\SYSWOW64\CMD.EXE. ในนั้นให้คอมไพล์และเรียกใช้แอปพลิเคชัน java ของคุณ


2

ในการแก้ปัญหานี้ก่อนอื่นตรวจสอบให้แน่ใจว่าซอฟต์แวร์ java ของคุณควรเป็นเวอร์ชัน 32 บิตหากเป็นเวอร์ชัน 64 บิตอย่างชัดเจนจะแสดงข้อผิดพลาดที่ไม่ตรงกันดังนั้นให้ลองติดตั้ง java เวอร์ชัน 32 บิตใหม่และดำเนินการโปรแกรม java ด้วยคำสั่ง c: \ windows \ sysWOW64 \ odbcad32.exe (ง่ายที่สุดในการคัดลอกและวางลงในกล่องโต้ตอบการทำงาน) นั่นเพียงพอแล้วโปรแกรมของคุณจะทำงาน


1

ปัญหาที่คุณพบอาจเป็นเพราะ: คุณมี Office 32 บิตและพร้อมรับคำสั่ง 64 บิต ในการแก้ปัญหาคุณต้องทำตาม 2 ขั้นตอน:

  1. เปิด ODBC Manager สำหรับ DSN โดยใช้: C: \ Windows \ SysWOW64 \ odbcad32.exe ซึ่งจะเปิด ODBC Data Administrator สำหรับเวอร์ชัน 32 บิตและคุณจะเห็นไดรเวอร์ฐานข้อมูลทั้งหมด

  2. หลังจากนี้คุณต้องเปิดพรอมต์คำสั่ง 32 บิตโดยใช้: C: \ Windows \ SysWOW64 \ cmd.exe สิ่งนี้จะเปิดพรอมต์คำสั่งเวอร์ชัน 32 บิต ใน CMD ใหม่นี้โปรดคอมไพล์โปรแกรม Java ของคุณใหม่และเรียกใช้โปรแกรมของคุณ

หวังว่านี่จะช่วยได้


1

ช้าไปหน่อย แต่เนื่องจากฉันประสบปัญหาเดียวกันในสถานการณ์ที่แน่นอนของคุณฉันคิดว่าฉันจะเพิ่มวิธีแก้ปัญหาของฉัน

ฉันมี Windows 7 (64 บิต) และ Office 2010 (32 บิต) ฉันลองใช้สตริงการเชื่อมต่อ DSN-less:

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=I:/TeamForge/ORS/CTFORS.accdb

และฉันลองใช้การเชื่อมต่อ DSN โดยใช้ ODBC Admin ทั้งเวอร์ชัน System32 และ SysWOW64 และไม่ได้ผล

ในที่สุดสิ่งที่ได้ผลคือการจับคู่ Java เวอร์ชันบิตกับ Office เวอร์ชันบิต เมื่อทำเช่นนั้นแล้วฉันสามารถใช้โหมดการเชื่อมต่อ DSN หรือ DSN less ได้โดยไม่ต้องยุ่งยาก


ฉันบอกเป็นนัยจากคำตอบของ Mob แต่ขอบคุณที่ยืนยัน วุ่นวายอะไรอย่างนี้!
Kevin Bowersox

0

คุณได้สร้าง DSN ก่อนในแผงควบคุม> เครื่องมือการดูแลระบบ> ODBC> ระบบ DSN ตั้งชื่อให้เหมือนกับ "myDatabase" และหากฉันกำลังขอตำแหน่งไฟล์ฐานข้อมูล / การเข้าถึงให้ระบุเส้นทางโดยใช้ตัวเลือกเรียกดู เมื่อสร้าง DSN เรียบร้อยแล้วคุณจะสามารถเข้าถึง ur DB ได้อย่างง่ายดาย


ฉันสร้าง DSN ของฉันด้วย ODBC ที่ฉันพบใน C: \ Windows \ SysWOW64 ... อันที่อยู่ในแผงควบคุมแทบไม่มีไดรเวอร์ที่บันทึกไว้สำหรับเซิร์ฟเวอร์ sql
user1028408

จากนั้นคุณต้องติดตั้งไดรเวอร์เนื่องจากหากไม่มีไดรเวอร์เหล่านั้นคุณจะไม่สามารถทำการเชื่อมต่อ ODBC ได้
Ankur Jain

คุณมีลิงค์ไปยังไดรเวอร์เหล่านี้หรือไม่ ฉันได้ลองติดตั้งแล้ว แต่ไม่ได้ผล
user1028408


ฉันดาวน์โหลดสิ่งเหล่านี้และแทนที่สตริงการเชื่อมต่อ: Connection dbConnection = DriverManager.getConnection ("Driver = {Microsoft Access Driver (*. mdb, * .accdb)}; DBQ = C: \\ Users \\ Owner \\ Documents \\ myDatabase .mdb "," admin "," "); แต่มันยังคงทำให้ฉันมีปัญหา บางทีฉันอาจต้องเปลี่ยนอย่างอื่นในรหัส?
user1028408

0

หากคุณใช้ netbeans ไปที่ tools-> java Platform ให้เปลี่ยน jdk_home ซึ่งชี้ไปที่ c: / programfiles / java / jdk1_7 เป็น c: programFiles (x86) / java / jdk1_6_21

หากแก้ไขไม่ได้ให้ค้นหา netbeans.cnf และทำการเปลี่ยนแปลงตามที่ระบุไว้สำหรับ jdk_home เริ่มต้นเนทีฟเบียนและวิธีการทำงานฉันมีปัญหาเดียวกัน แต่ฉันใช้งานได้


0

ฉันมีปัญหาอย่างมากในการเชื่อมโยงไปยัง MySQL จากแล็ปท็อป 64 บิตที่ใช้ Windows 7 โดยใช้ MS Access 2010 ฉันพบว่าบทความก่อนหน้านี้มีประโยชน์มาก แต่ก็ยังไม่สามารถเชื่อมต่อโดยใช้ odbc 3.5.1 ได้ ตามที่ฉันเคยเชื่อมโยงเครื่อง 32 บิตโดยใช้ Connector / ODBC 5.1.13 ฉันดาวน์โหลดเวอร์ชันนั้นและตั้งค่าโดยใช้คำแนะนำด้านบน ประสบความสำเร็จ. คำตอบน่าจะเป็นการลองใช้ Connector.odbc เวอร์ชันต่างๆ


0

หากคุณกำลังเชื่อมต่อจากแพลตฟอร์ม 64 บิตโดยใช้ไดรเวอร์ 32 บิตให้เรียกใช้ C: \ Windows \ SysWOW64 \ odbcad32.exe และสร้าง DSN มันจะทำงาน.


0

ฉันพบปัญหานี้เมื่ออัปเกรดเป็นเซิร์ฟเวอร์ windows 7 ด้วยแอปพลิเคชัน CLASP ดั้งเดิมบางตัว พยายามเรียกใช้แอปพลิเคชัน 32 บิตบนเครื่อง 64 บิต

ลองตั้งค่าความเข้ากันได้ของแอปพลิเคชันพูล 32 บิตเป็น True และ / หรือสร้าง dsn ใน 32 และ 64 บิต

เปิดหน้าต่างแหล่งข้อมูล odbc ในทั้งสองเวอร์ชันจากกล่องเรียกใช้ C: \ Windows \ SysWOW64 \ odbcad32.exe C: \ Windows \ system32 \ odbcad32.exe


0

ฉันพบปัญหานี้ เนื่องจากสถาปัตยกรรมคอมพิวเตอร์ของคุณและสถาปัตยกรรมฐานข้อมูลที่คุณใช้อยู่

หากคุณใช้ระบบปฏิบัติการ 32 บิตทุกอย่างจะทำงานได้ดีเพราะคุณสามารถติดตั้งซอฟต์แวร์ 32 บิตเท่านั้น ปัญหาเกิดขึ้นเมื่อคุณใช้ระบบปฏิบัติการ 64 บิต

เพื่อแก้ปัญหานี้เป็นเรื่องง่าย - ฉันใช้เวลานานในการค้นพบปัญหานี้

  1. การรู้จักระบบปฏิบัติการของคุณคือ 64 บิต แต่ Microsoft Office ของคุณเป็น 32 บิต
  2. ดังนั้นเพื่อให้คุณเข้าถึงฐานข้อมูลของคุณโดยใช้ NetBean IDE (สมมติว่าคุณใช้สิ่งนี้) คุณต้องติดตั้ง JDK 32 บิต หากคุณติดตั้ง 64 บิตคุณต้องถอนการติดตั้งและติดตั้ง 32 บิต

คุณไม่สามารถเข้าถึงฐานข้อมูลของคุณได้เนื่องจาก JVM 64 บิตของคุณไม่เหมือนกับ JVM 32 บิต

ในการเพิ่มฐานข้อมูลของคุณลงในระบบของคุณ 1. Control Panel 2. Administrator Tools 3. Data Source (ODBC) คลิกขวาที่มันเปลี่ยนเป้าหมายเป็น \ sysWOW64 \ odbcad32.exe เปลี่ยน start ใน r% \ SysWOW64

จากนั้นคุณควรจะวิ่งได้ แจ้งให้ฉันทราบหากคุณมีปัญหาเกี่ยวกับเรื่องนี้

ขอขอบคุณ!


0

ฉันได้แก้ไขข้อผิดพลาดแล้ว

ทำตามขั้นตอน:

  1. ติดตั้ง JDK เวอร์ชัน 32bt
  2. ติดตั้ง MS-Office 2007
  3. กำหนดค่าแผงควบคุม: แผงควบคุม b. เครื่องมือผู้ดูแลระบบค. แหล่งข้อมูล (ODBC)

    คลิกขวาที่มันเปลี่ยนเป้าหมายเพื่อ\sysWOW64\odbcad32.exeเปลี่ยนการเริ่มต้นในr%\SysWOW64

ดำเนินการและขอให้โชคดี ทำงานใน windows 7 และ 8

ลบ MS-Office เวอร์ชันที่ใหม่กว่าและติดตั้งเฉพาะ MS-Office 2007 หากปัญหายังคงมีอยู่


0

ในการแก้ปัญหานี้ก่อนอื่นให้ตรวจสอบให้แน่ใจว่าซอฟต์แวร์ java ของคุณควรเป็นเวอร์ชัน 32 บิตหากเป็นเวอร์ชัน 64 บิตอย่างชัดเจนจะแสดงข้อผิดพลาดที่ไม่ตรงกันดังนั้นให้ลองติดตั้ง java เวอร์ชัน 32 บิตใหม่และรันโปรแกรม java ด้วยคำสั่ง c:\windows\sysWOW64\odbcad32.exe(ง่ายที่สุดในการ คัดลอกและวางลงในกล่องโต้ตอบการทำงาน) นั่นเพียงพอแล้วโปรแกรมของคุณใช้งานได้แน่นอน


0

ฉันคิดว่านี่จะเป็นประโยชน์มากขึ้นด้วย

สำหรับการแข่งขันพลาดสถาปัตยกรรม

ฉันแค่คัดลอกไฟล์ jdk จากไฟล์ 32 บิต C: \ Program Files (x86) \ Java \ jdk1.7.0_71 และวางลงในไฟล์ 64 บิต C: \ Program Files \ Java \ jdk1.7.0_10 จากนั้น เปลี่ยนชื่อไฟล์ให้ตรงกับไฟล์ที่คุณแทนที่เพื่อหลีกเลี่ยงข้อผิดพลาด IDE (netbeans)

แล้วคุณจะดีไป

หมายเหตุ: คุณควรบัคอัพไฟล์ 64 บิตดังนั้นเมื่อคุณต้องการสร้างแอปพลิเคชัน 64 บิตคุณสามารถส่งกลับไปยังตำแหน่งได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.