Форум программистов, компьютерный форум, киберфорум
Windows 7
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104

Разбор особенностей х86 и х64 при работе с ODBC

20.02.2015, 12:17. Показов 5892. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа под х86, которая обращается к базе данных на MySQL. Работоспособность программы проверена на 2х своих ПК под х86 и х64.

Данную программу необходимо установить на удаленные ПК. Имея права администратора домена скажем тоталом копирую все необходимые файлы на удаленный ПК:
- 32 битная основная программа
- mysql-connector-odbc-noinstall-5.2.6-win32 - необходимый для создания DSN (Data Source Names) для коннекта с сервером.

Далее запускаю удаленную командную строку (PsExec), выполняю установку mysql-connector-odbc-noinstall-5.2.6-win32 через install.bat

после этого с помощью батника выполняю добавление DSN
Bash
1
2
@echo off
odbcconf configsysdsn "MySQL ODBC 5.2 ANSI Driver" "DSN=DSNname; server=servername; user=UID; password=pswrd; DB=DBname; port=DBport||"
На 32 битной Виндоус добавляется отлично. На 64 битной после запуска окно сразу закрывается.

Чтобы проверить наличие ODBC на удаленной машине захожу через удаленный реестр в ветку
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.IN I
и в ней нет записей об созданном DSN.

Читал в интернетах что для работы 32хбитного приложения через ODBC необходимо чтобы DSN был прописан в ветке
the app under SysWOW64 creates entries at "computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wo w6432Node\ODBC\ODBC.INI"

Теперь непосредственно о проблеме.

При просмотре удаленного реестра ветка HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ ODBC\ODBC.INI не отображается, а значит я немогу ни проверить визуально наличие моего DSN ни добавить его вручную.

Вопрос1. Как изменить батфайл по добавлению DSN для 64 битных систем исходя из того что:
There are two ODBC locations on a 64 bit machine. C:\windows\System32\odbcad32.exe (this is for the 32 bit) C:\windows\SysWOW64\odbcad32.exe (for 64 bit)
Вопрос2. Как просмотреть реестр в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ ?

Добавлено через 20 минут
Попробую через PowerShell

Bash
1
PS C:\> Add-OdbcDsn -Name "MyPayroll" -DriverName "SQL Server Native Client 10.0" -DsnType "System" -SetPropertyValue @("Server=MyServer", "Trusted_Connection=Yes", "Database=Payroll")
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.02.2015, 12:17
Ответы с готовыми решениями:

х64 и х86
Дайте ссылку на free pascal чтоб работал на двух системах х64 и х86, и при компиляции в одной, например в х64, .эхэ работала и в х86.

WINDOWS 7 х64 ИЛИ х86
У меня процессор Intel(R) Core(TM)2 Duo CPU E7400 @2.80GHz 2.80 GHz ОЗУ 3Гб тип системы 32 РОС И видео карта NVIDIA GeForce 9500 GT ...

подскажите х64 или х86
Всем привет мне нужна помощь купил новый компьютер и хочу узнать сколько у меня разрядов х64-х86 у меня процессор AMD Athlon(tm) II X4...

1
10 / 10 / 0
Регистрация: 13.04.2011
Сообщений: 104
02.03.2015, 10:16  [ТС]
Итак, получилось! Расскажу подробнее, может кому пригодится.

Начну со второго вопроса.
Как удаленно посмотреть ветку? Да никак! Для того чтобы туда установить и прописать ODBC создал батник, оттестировал его на своей 64 битной. Сам батник выполняю через PsExec на удаленной машине - прописывается все как надо и работает.

Что либо сделать с PowerShell проблематично, так как более менее адекватная работа с ODBC реализована только в 4.0, который надо предварительно устанавливать на удаленный ПК. Если это сделать заранее - тогда удаленно через PS все получится.

В старых версиях PS я не нашел подходящих мне функций для выполнения данной задачи + есть ряд сложностей с включением служб для PS Remoting. Если несколько служб не запущено - просто не сможете подключиться к удаленной машине. Пляски с бубном в общем.

И по первому вопросу. Батник на добавление DSN имеет такой вид:
64 битная ОС\32 битный драйвер+программа:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@ECHO OFF
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\DSN_NAME /v Driver /t REG_SZ /d c:\\Windows\\mysql-connector-odbc-noinstall-5.2.6-win32\\lib\\myodbc5a.dll /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\DSN_NAME /v SERVER /t REG_SZ /d server_name /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\DSN_NAME /v UID /t REG_SZ /d user_name /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\DSN_NAME /v PWD /t REG_SZ /d password /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\DSN_NAME /v DATABASE /t REG_SZ /d DB_name /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\DSN_NAME /v PORT /t REG_SZ /d port_num /f
 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\ODBC Data Sources" /v DSN_NAME /t REG_SZ /d "MySQL ODBC 5.2 ANSI Driver" /f
 
pause
32 битная ОС\32 битный драйвер+программа:
Bash
1
2
@echo off
odbcconf configsysdsn "MySQL ODBC 5.2 ANSI Driver" "DSN=DSNname; server=servername; user=UID; password=pswrd; DB=DBname; port=DBport||"
Либо аналогично варианту с 64 только в другую ветку реестра:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@ECHO OFF
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_NAME /v Driver /t REG_SZ /d c:\\Windows\\mysql-connector-odbc-noinstall-5.2.6-win32\\lib\\myodbc5a.dll /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_NAME /v SERVER /t REG_SZ /d server_name /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_NAME /v UID /t REG_SZ /d user_name /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_NAME /v PWD /t REG_SZ /d password /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_NAME /v DATABASE /t REG_SZ /d DB_name /f
 
reg add HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DSN_NAME /v PORT /t REG_SZ /d port_num /f
 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" /v DSN_NAME /t REG_SZ /d "MySQL ODBC 5.2 ANSI Driver" /f
 
pause
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2015, 10:16
Помогаю со студенческими работами здесь

подскажите х64 или х86
Доброго времени суток всем, Сразу извиняюсь если пишу не в ту тему, пожалуйста не закидывайте куда нибудь. Хочу поставить windows 7...

Windows х86 или х64?
У меня слабенький комп но кое-как пыхтит. Стоит хр х86, но название процессора AMD Athlon 64 Processor 3000+ как бы намекает нам, что ему...

х86 работает нормально, но х64 глючит
Всем привет! Незнаю куда написать, ну написал сюда. Проблема заключается в следующем: х86 ось работает просто отлично. Но при установке...

Перекодировка библиотек х86 в библиотеки х64 (opencv)
Взялся установить в VC 2015 библиотеки opencv, а винду 10 устанавливал пару лет назад как 32 разрядную, столкнулся с проблемой что в opencv...

Хочу скачать хорошую windows 7 максимальную х64/х86
Хочу скачать хорошую windows 7 максимальную х64/х86. Искал в интернете не нашел. Кто может киньте ссылку на хорошую винду без ключа.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru