32-битов ODBC драйвер за свързване към 64-битова база данни

За да се свържа с 64-битова база данни (Oracle / DB2 / Postgresql/ SQL Server) от 32-битов софтуер чрез ODBC, имам ли нужда от 32-битов клиент за база данни или само 32-битов ODBC драйвер би бил достатъчен.

Като пример от Oracle, когато инсталирам Oracle Server, 32-битовият ODBC администратор не е задължително да има запис за Oracle, тъй като 32-битовият ODBC драйвер не съществува. За да се свържа, трябваше да инсталирам 32-битовия Oracle Client, след което мога да видя ODBC запис.

Въпросът ми е, за да се свържа с 64-битова база данни от 32-битово приложение, имам ли нужда от 32-битов клиент на база данни (тънък/пълен) или просто има 32-битов ODBC драйвер, който може да се инсталира за установяване на връзка .


person Abhijit    schedule 06.06.2014    source източник


Отговори (3)


Кой клиент използвате зависи от архитектурата на клиентската машина, която използвате, а не от сървъра.

IIRC, с Oracle трябва да инсталирате клиента И ODBC драйвера. Клиентът всъщност управлява връзката към базата данни, докато ODBC слоят превежда ODBC-говора към нещо, което клиентът разбира.

Предполагам, че други платформи са подобни, въпреки че е възможно някои бази данни да предоставят унифициран клиентски инсталатор, който може да инсталира както клиента, така и ODBC драйвера.

Когато използвате ODBC, е важно да използвате ODBC архитектурата, която съответства на вашето клиентско приложение. Например, ако използвате x86 Access, ще ви е необходим 32-битов ODBC драйвер и клиент.

person Baldy    schedule 06.06.2014
comment
Въпреки че разбрах същността на отговора ви, но може би трябва да не се съглася с твърдението ви is dependent on the architecture of the client machine. Като пример, 32-битов клиент може да бъде инсталиран на 64-битова кутия. Освен това, ако можете повече подробности за вашия отговор (като препратки), би си струвало. - person Abhijit; 06.06.2014
comment
@Abhijit прав си, но първоначалният въпрос беше дали архитектурата на сървъра определя кой клиент трябва да бъде инсталиран. След като започнете да говорите за ODBC, правилният отговор вероятно ще зависи повече от приложението, използващо ODBC. - person Baldy; 07.06.2014
comment
Мисля, че същността на въпроса за ОП in order to connect to a 64 bit database from a 32 bit application, do I need the 32 bit database client (thin/full) or just there exist a 32 bit ODBC driver which can be installed to establish a connection. - person Abhijit; 07.06.2014
comment
Отговорът е правилен. Докато подходящото издание на драйвера е налично за 32 и 64 бита, най-добрият ви залог обикновено е да съответства на режима на клиента, където стартирате драйвера. Но се уверете, че вашият драйвер поддържа версията на софтуера на вашия сървър. Например, не се опитвайте да използвате драйвер за DB2 LUW 9.1, ако се свързвате към сървър, изпълняващ DB2 LUW 10.1 - person WarrenT; 07.06.2014

Когато настроих SQL свързан сървър към Oracle, инсталирах:

  • Асистент за мрежова конфигурация
  • Net Manager
  • ODBC драйвер
  • OLE драйвер

Архитектурата на драйвера трябва да съответства на архитектурата на машината. В моя случай беше 64-битов Windows Server, така че използвах 64-битовия драйвер (win64_11gR2_client.zip).

След това пуснах Net Config. Асистент и настройте конфигурацията на Oracle (хост/порт/потребител/пас/име на услуга). Уверете се, че сте преминали тест за връзка тук. Това ще конфигурира вашия файл tnsnames.ora (%path%\product\11.2.0\client_1\network\admin\tnsnames.ora)

Ако не можете да се свържете, погледнете във файла sqlnet.ora. Трябваше да променя моя, за да чета SQLNET.AUTHENTICATION_SERVICES= (NONE), преди да мога да се свържа успешно.

След това стартирах ODBC, за да настроя System DSN, използвайки същата настройка на името в Net Config. Помощник.

person Dave Cullum    schedule 06.06.2014
comment
In my case it was 64bit Windows Server, so I used the 64-bit driver, значи казваш, че 32-битов драйвер не може да се инсталира на 64-битова машина? Мислех, че ODBC драйверите, които не са драйвери на ядрото, нямат ограниченията. - person Abhijit; 07.06.2014
comment
Мисля, че можете, те просто ще се показват в 32-битовия odbc панел вместо основния odbc панел на 64-битова машина. Чувствам болката ви по този въпрос, настройването на oracle ми отне часове и множество инсталации/деинсталирания, опитах 32-битови и 64-битови. Ако все пак приключите с деинсталирането, има програма за деинсталиране, осигурена от Oracle - горещо препоръчваме изтеглянето - не използвайте само иконата за добавяне/премахване в контролния панел - оставя неща навсякъде. - person Dave Cullum; 07.06.2014
comment
Fyi деинсталиращата програма е win64_11gR2_deinstall.zip, намира се на сайта на oracle. - person Dave Cullum; 07.06.2014

Следното е валидно за Oracle, не знам дали всичко важи и за други RDBMS.

Сървърът на база данни и клиентът са независими един от друг, т.е. можете да се свържете с 32-битов клиент на Oracle към 64-битов сървър на база данни на Oracle.

Архитектурата на ODBC-драйвера и Oracle клиента обаче трябва да съвпадат, т.е. 32-битов ODBC драйвер работи само с 32-битов Oracle клиент, 64-битов ODBC драйвер се нуждае от 64-битов Oracle клиент. Това ограничение важи и за други доставчици като OLE DB или ODP.

64-битов Oracle клиент изисква 64-битов Windows, разбира се. Инсталирането на 32-битов Oracle клиент на 64-битов Windows не е проблем.

Също така е възможно да имате както 32-битов, така и 64-битов Oracle клиент (и следователно и двете архитектури на ODBC драйвери) инсталиран на една и съща машина. Трябва обаче да направите няколко „трика“, за да накарате и двете да работят безпроблемно.

person Wernfried Domscheit    schedule 07.06.2014