Di chuyển thông tin ODBC thông qua một tệp bó


1

Tôi là một kỹ thuật viên hỗ trợ máy tính để bàn hiện đang làm việc trong một dự án di chuyển quy mô lớn trên nhiều trang web. Tôi đang tìm cách chuyển các mục ODBC từ Windows XP sang Windows 7. Nếu có ai biết về một chương trình hoặc bất cứ thứ gì đã được dựng sẵn, hãy chuyển hướng cho tôi. Tôi đã xem nhưng chưa tìm thấy gì, vì vậy tôi đang cố gắng tự xây dựng.

Tôi biết đủ lập trình cơ bản để đọc tác phẩm của người khác và khỉ xung quanh với một cái gì đó đã tồn tại, nhưng không nhiều thứ khác. Tôi đã bắt gặp một tệp bó tùy chỉnh được viết tại một trang web (trong số những thứ khác) xuất thông tin ODBC từ máy tính cũ và lưu trữ nó trên máy chủ (được gắn nhãn là y: thông qua việc sử dụng mạng ở đầu tệp), sau đó chuyển nó từ máy chủ đến một máy tính mới. Mã có sẵn dành cho việc di chuyển Windows XP sang XP. Dưới đây là các bit liên tục của mã:

echo Exporting ODBC Information
start /wait regedit.exe /e "y:\%username%\odbc.reg" HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

(và sau này)

echo Importing ODBC
start /wait regedit /s "y:\%username%\odbc.reg"

Chúng tôi hiện đang chuyển từ Windows XP sang 7 và phần này của tệp bó dường như vẫn hoạt động cho trang web cụ thể này, nơi sử dụng Oracle 8i và 10g. Tôi đang tìm cách sử dụng phiên bản rút gọn của mã này tại nhiều trang web và tôi tự hỏi liệu cùng một dòng mã sẽ vẫn hoạt động cho bất kỳ thứ gì khác ngoài Oracle.

Ngoài ra, nghiên cứu của tôi về vấn đề này đã chỉ ra rằng có các vị trí khác nhau trong các hệ điều hành 64 bit cho các mục nhập 32/64 bit và tôi tự hỏi có ảnh hưởng gì đến mã. Tôi có thể sao chép cùng một dữ liệu vào cả hai phần của sổ đăng ký, với hy vọng bắt được mọi thứ không?

Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn bạn đã dành thời gian.

Câu trả lời:


1

Vâng, bạn đang đi đúng hướng. Thực tế, có hai khóa đăng ký bạn sẽ quan tâm tùy thuộc vào việc bạn đã đặt các cổng TCP tùy chỉnh cho các kết nối ODBC, v.v .:

HKLM \ PHẦN MỀM \ Wow6432Node \ ODBC \ ODBC.INI \

HKLM \ PHẦN MỀM \ Wow6432Node \ Microsoft \ MSSQLServer \ Client \

HKLM là nơi lưu trữ DSN hệ thống. HKCU là nơi lưu trữ DSN của người dùng cho người dùng hiện tại.

Phần Wow6432Node sẽ chỉ xuất hiện nếu bạn đang xem các mục ODBC 32 bit trên hệ thống 64 bit. Nếu bạn đang xem các mục ODBC 32 bit trên hệ thống 32 bit, bạn sẽ không thấy thư mục Wow6432Node. Nếu bạn đang xem các mục ODBC 64 bit trên hệ thống 64 bit, bạn sẽ không thấy thư mục Wow6432Node. (Bạn có thể thay thế "32 bit trên 32 bit" và "64 bit trên 64 bit" cho từ "bản địa.") Bạn có thể chạy mã 32 bit trên máy tính 64 bit nhưng nó không được coi là "bản địa".

Nếu bạn đang xuất các mục ODBC từ nền tảng 32 bit và nhập chúng vào HĐH 64 bit, bạn sẽ cần đặt chúng vào vị trí thích hợp trong thư mục Wow6432Node.

Để thấy điều này theo cách khác, hãy dùng máy tính Windows 7 64 bit. Chạy Windows \ System32 \ odbcad32.exe. Đó là bản gốc (phiên bản 64 bit.) Thêm kết nối ODBC trong đó.

Bây giờ hãy chạy Windows \ SysWOW64 \ odbcad32.exe trên cùng một máy. Đó là phiên bản 32 bit (WoW64 là viết tắt của Mô phỏng Win32 trên Windows 64 bit.) Bạn sẽ nhận thấy rằng kết nối ODBC mà bạn đã tạo không có ở đó. Bởi vì bạn không nhìn vào các kết nối ODBC gốc nữa. Bạn đang nhìn vào những người 32 bit.

Đó là lý do tại sao bạn phải chú ý đến kiến ​​trúc mà kết nối ODBC đến từ và kiến ​​trúc mà bạn đang nhập nó vào.

chỉnh sửa: Giải thích của tôi có thể rõ ràng như bùn, nhưng nếu bạn muốn giải thích rõ hơn về chuyển hướng hệ thống tệp và chuyển hướng đăng ký cho các quy trình 32 bit chạy trên Windows 64 bit, tôi rất khuyến nghị Windows Internals, 4th Ed. bởi Mark Russinovich và cộng sự. Phần I, Chương 3.

chỉnh sửa # 2: Không, bạn không thể sao chép các khóa registry vào cả hai nơi và hy vọng sẽ xử lý mọi thứ. Hệ thống sẽ thích những người bản địa, sẽ không hoạt động nếu họ cần trong bối cảnh 32 bit.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.