tag:blogger.com,1999:blog-654279083390275842.post9154139576056087534..comments2024-03-19T12:22:43.654+03:00Comments on Размышлизмы eao197: [prog] Насколько просто поставить себе ODBC-драйвера от Oracle?eao197http://www.blogger.com/profile/17283739752119445290noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-654279083390275842.post-64240672195317620562012-03-30T19:30:08.270+03:002012-03-30T19:30:08.270+03:00@Евгений Охотников
это *точно* блоггер сбойнул
...@Евгений Охотников <br /><br />это *точно* блоггер сбойнул<br /><br />(и я как раз хотел спросить, не удалил ли его ты -- я знаю, что когда я удаляю свой коммент, блоггер пишет "коммент удален автором", а когда хозяином блога -- то не знаю что происходит)<br /><br />могу перезапостить мой коммент если внезапно он кому-то интересен, но *мне* ты ответил, и у меня вопросов нетимяhttps://www.blogger.com/profile/17115793398497396330noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-43712532834700882732012-03-30T11:33:23.059+03:002012-03-30T11:33:23.059+03:00Какая-то странная ситуация. В почте у меня есть ещ...Какая-то странная ситуация. В почте у меня есть еще один комментарий от тов. имя, а здесь его нет. То ли комментарий был удален автором, то ли Блоггер сбойнул.<br /><br />На всякий случай упомяну, что я говорил не о "прямом взаимодействии" с СУБД Oracle, а о "прямой работе с ODBC-шным драйвером от Oracle".eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-2474234564772192082012-03-29T19:26:15.986+03:002012-03-29T19:26:15.986+03:00@имя:
У тебя наблюдается незнание предмета, имхо....@имя:<br /><br />У тебя наблюдается незнание предмета, имхо.<br /><br />ODBC -- это и есть тот слой, который скрывает от программы работу с протоколом конкретной СУБД. Приложение линкуется к DLL-ке odbc32 (под 32-х битовой виндой) и использует оттуда стандартизированный API.<br /><br />Когда приложение делает вызовы ODBC API из odbc32, та делегирует вызовы конкретному ODBC-драйверу (предоставляемому разработчиком СУБД или еще кем-то).<br /><br />Так вот, в случае с {Microsoft ODBC for Oracle} происходила, как мне кажется, работа через промежуточный ODBC-драйвер от MS. Т.е. odbc32 грузила Oracle-овский драйвер не напрямую. Вместо этого загружался какой-то MS-овский псевдодрайвер, который уже загружал Oracle-драйвер.<br /><br />Кстати говоря, ODBC -- это такая псевдонезависимость от СУБД. Как только возникает задача выжимать из СУБД производительность, сразу же приходится переходить на конкретные диалекты конкретных SQL-ей. И независимость от СУБД, фактически, теряется.<br /><br />Другое дело, что при работе с OTL довольно тяжко заставить одно и то же приложение работать с MSSQL через ODBC, а с Oracle через OCI. Поэтому приходится и с Oracle через ODBC общаться.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-19340382145715445952012-03-29T18:41:27.469+03:002012-03-29T18:41:27.469+03:00@Roman Yankovsky
я обдумал твой коммент и уже хот...@Roman Yankovsky<br /><br />я обдумал твой коммент и уже хотел ответить, но меня тошнит от деталей взаимотношений ms & oracle и всех этих виндовых подробностей<br /><br />тем более, что Евгений Охотников упомянул главную цель -- прямое взаимодействие; вот про нее можно поговорить<br /><br />@Евгений Охотников <br /><br />скажу сразу, с ораклом я напрямую не работал и его закидонов не знаю<br /><br />но утверждение "При этом, как я понимаю, используется не прямая работа с Oracle ODBC, а через какой-то MS-овский промежуточный слой" для меня выглядит внутренне противоречивым<br /><br />прямая работа -- это когда сервер БД открывает серверный tcp socket, твоя прога открывает клиентский tcp socket, и они обмениваются бинарными пакетами через tcp<br /><br />понятно, парсить и генерить эти пакеты лучше не самому, а <br /><br />1. слинковавшись с сишным кодом, предоставленным в данном случае ораклом, статически или динамически<br /><br />либо 2. слинковавшись с одной из с++ либ, которая дает независимость от БД, опять статически или динамическиимяhttps://www.blogger.com/profile/17115793398497396330noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-56572273154997186092012-03-29T14:28:23.240+03:002012-03-29T14:28:23.240+03:00В том-то и дело, что Database Client включает в се...В том-то и дело, что Database Client включает в себя ODBC Driver и даже ставит его, но как-то странно.<br /><br />Если пытаться его активировать не через диалог создания DSN операционной системы, а через параметр Driver в connection string, то нужно указывать имя {Microsoft ODBC for Oracle}. При этом, как я понимаю, используется не прямая работа с Oracle ODBC, а через какой-то MS-овский промежуточный слой. По крайней мере при возникновении каких-либо ошибок сообщения о них были явно похожи на MS-совские сообщения, а не Oracle-овские.<br /><br />Поскольку мы искали проблему при работе с БД и не знали, на что именно грешить, то захотелось убрать этот промежуточный слой и использовать Oracle ODBC напрямую. Сделать это оказалось возможно через ручную установку Oracle ODBC-драйверов.<br /><br />А так, похоже, Oracle ODBC является довольно ущербным тонким слоем над Oracle OCI (который в любом случае нужен на машине).eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-81633883879414340302012-03-29T11:44:09.245+03:002012-03-29T11:44:09.245+03:00"жадная контора может специально пускать свой..."жадная контора может специально пускать свой клиент *мимо* драйвера"<br /><br />Не понимаю, что значит "мимо драйвера". Оракловский клиент другими словами и есть тот самый драйвер, другие ему не нужны. Причём присутствует он на большом количестве платформ ещё с тех лет, когда всех этих ODBC и в проекте не было. <br /><br />Как раз наиболее распространённый сценарий доступа к БД оракла -- этот как раз использование родного оракловского интерфейса.Roman Yankovskyhttps://www.blogger.com/profile/11539523237903351011noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-19695554947370987162012-03-29T04:35:44.999+03:002012-03-29T04:35:44.999+03:00кстати, сам только что напоролся на упомянутую тоб...кстати, сам только что напоролся на упомянутую тобой ошибку<br /><br />решил я прочесть <a href="http://www.oracle.com/technetwork/database/features/oci/ic-faq-094177.html#A3664" rel="nofollow">faq</a><br /><br />вижу: The Instant Client interoperates with any database version that the full Oracle Client interoperates with. Please see the interoperability matrix: <a href="http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=207303.1" rel="nofollow">Metalink Note 207303.1</a><br /><br />проходим по последней ссылке и видим System error.имяhttps://www.blogger.com/profile/17115793398497396330noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-28999833986477087102012-03-29T04:20:34.939+03:002012-03-29T04:20:34.939+03:00ничуть не пытаясь оправдать говнооракл, отмечу, чт...ничуть не пытаясь оправдать говнооракл, отмечу, что "Database Client" != "ODBC Driver"<br /><br />и более того, что жадная контора может специально пускать свой клиент *мимо* драйвера, чтобы его не юзали с другими бд, или хотя бы для того, чтобы проще использовать нестандартные возможности и не дебажить их в драйвере<br /><br />ну а раз (предположительно) клиент ходит в бд мимо драйвера, то драйвер там запросто может не работать... <br /><br />вот оно, enterpise quality и Hardware and Software, Engeneered to Work Together!имяhttps://www.blogger.com/profile/17115793398497396330noreply@blogger.com