2009-12-23 44 views
16

Gần đây tôi đã cài đặt SQL Server 2008 Express trên máy tính Windows 7 Ultimate x64 của tôi. Tôi cũng có IIS 7.5 với PHP 5.3, và tôi đã cố gắng để kết nối với SQL qua ADODB, nhưng vẫn giữ nhận được lỗi này:Làm cách nào để kết nối với Máy chủ SQL 64 bit của tôi bằng ODBC?

[Microsoft][ODBC Driver Manager] The specified DSN contains an 
architecture mismatch between the Driver and Application 

Sau khi thực hiện một lượng nhỏ đào trên internet, tôi nghĩ rằng điều này là do Trình điều khiển ODBC của SQL Server dành cho các hệ điều hành 32 bit và 64 của tôi. Trước hết, tôi có đúng không? Đây có phải là lý do tôi gặp rắc rối không? Thứ hai, nếu có, làm thế nào để sửa lỗi này? Có bất kỳ trình điều khiển ODBC được cập nhật nào hoạt động với hệ điều hành 64 bit không? Tôi nhìn nhưng không thể tìm thấy bất kỳ ...

Trả lời

25

Bạn có quyền làm việc đó với các bit.

Hope this helps:

--From MSDN -

To manage a data source that connects to a 32-bit driver under 64-bit platform, use c:\windows\sysWOW64\odbcad32.exe. To manage a data source that connects to a 64-bit driver, use c:\windows\system32\odbcad32.exe. If you use the 64-bit odbcad32.exe to configure or remove a DSN that connects to a 32-bit driver you will receive this message.

+0

cảm ơn! Tôi rất ngạc nhiên khi thấy khó khăn như thế nào để tìm ra điều này! – Guillermo

+0

Điều đó cũng có tác dụng với tôi ... sau 30 phút rối tung xung quanh vì tôi đã sao chép sai đường dẫn. Nếu bạn đang đọc bài viết này, C: \ Windows \ SysWOW64 \ odbcad32.exe là một trong những bạn muốn. –

+0

Cảm ơn, rất hữu ích. :) – Dharmavir

1

Tôi đặt cược bạn đang làm việc với DSN người dùng.

Tùy thuộc vào quan điểm của bạn, có một "tính năng" hoặc "lỗi" trong 64-bit môi trường Windows -

  1. DSN 32-bit tài khoản hiển thị trong quản trị 64-bit và khi 64 -bit ứng dụng khách yêu cầu tất cả DSN có sẵn - mặc dù DSN 32 bit không thể được sử dụng bởi ứng dụng khách và ứng dụng khách 64 bit.

  2. DSN người dùng 64 bit hiển thị trong Quản trị viên 32 bit và khi ứng dụng khách 32 bit yêu cầu tất cả DSN có sẵn - mặc dù DSN 64 bit không thể được sử dụng bởi ứng dụng khách 32 bit ứng dụng và Quản trị viên.

Thông báo lỗi bạn mô tả xuất hiện bất cứ khi nào có sự không khớp bit như vậy giữa DSN và ứng dụng khách đang cố gắng làm việc với nó.

Đề xuất của Microsoft là đặt tên cho DSN người dùng của bạn bằng _32 hoặc _64, tùy thuộc vào độ bit của trình điều khiển mà chúng dựa trên ... hoặc gắn với DSN hệ thống.

Có các giải pháp 32 bit và 64 bit cho kết nối bạn muốn. Các bitness của ứng dụng khách của bạn (s) - IIS & PHP, trong trường hợp này - dictate bitness của giải pháp bạn yêu cầu.

+0

Tôi đã thực sự cố gắng thiết lập mọi thứ như DSN hệ thống. Nếu bạn muốn, tôi đã về cơ bản hỏi lại câu hỏi này tại Server Fault vì nó là nhiều hơn về quản lý máy chủ hơn so với lập trình. Nó vẫn chưa được giải quyết, vì vậy nếu bạn nghĩ rằng bạn có thể giải quyết nó, bằng mọi cách! http://serverfault.com/questions/97074/ – SoaperGEM

2

Tôi đã thử dùng C:\Windows\SysWOW64\odbcad32.exe để thêm trình điều khiển. Nhưng khi tôi thiết lập một máy chủ được liên kết giữa MAS90 và SQL Server 2008 R2, tôi vẫn gặp lỗi cấu trúc không khớp. Chỉ cần nói chuyện với một anh chàng từ Sage và anh ta nói nó sẽ không hoạt động với phiên bản 64-bit của Sql Server. Máy chủ được liên kết chỉ hoạt động với MAS90 nếu phiên bản Sql Server là 32 bit.

+3

"Chỉ cần nói chuyện với một anh chàng" không thực sự là một tài liệu tham khảo – Dhara

4

Tôi đã gặp sự cố tương tự khi cố liên kết máy chủ SQL 2012 64 bit với 'Sage Timberline' bằng Giao diện người dùng ODBC phổ biến.

Tôi có thể thiết lập DSN 32 bit, nhưng SQL Server vẫn cho tôi lỗi "không khớp kiến ​​trúc" khi cố gắng tạo máy chủ được liên kết bằng DSN 32 bit.

+0

scott im có vấn đề này, bạn có thể làm bất cứ điều gì aout nó? –

1

nếu chút ứng dụng 32 trên hệ điều hành 64 bit (ứng dụng mà bạn đang cài đặt theo [file chương trình (X86)] sử dụng C sau: \ Windows \ SysWOW64 \ odbcad32.exe

khác 64 bit và ứng dụng hệ điều hành 64 bit sử dụng C sau: \ Windows \ System32 \ odbcad32.exe

nếu không bạn sẽ nhận được một lỗi như "không phù hợp kiến ​​trúc"

Hy vọng điều này sẽ tiết kiệm ngày của một ai đó :)

Các vấn đề liên quan