У наш грандіозний століття * гігагерц і терабайт багато встигли забути про такому чудовому API як ODBC. Чудово його в тому, що програма може працювати з будь-яким сервером баз даних (або навіть з локальними даними, наприклад, файлами DBF) за допомогою одних і тих же функцій. Сьогодні більшість програмістів пишуть додатки ** на Delphi з використанням BDE або ж на всіляких платформах від Microsoft з використанням ADO. DAO. MDAC *** та інших модних технологій. Однак, якщо копнути глибше, в основі всіх технологій від Microsoft лежить саме ODBC.
Я використовую ODBC для доступу до Oracle з Excel через DAO (це окрема велика тема, до якої я ще планую повернутися). Так, я знаю, що є Oracle Objects for OLE, але «так історично склалося».
Сталося так, що написавши черговий додаток, я виявив, що воно не підходить для більшості машин нашої компанії. Чому? Відповідь знайшлася досить швидко - клієнт Oracle встановлений некоректно, і ODBC-драйвер не працює. Здавалося б, які проблеми? Драйвера вільно лунають на OTN. скачувати і ставиш. Так-то воно так, але для того, щоб встановити ці драйвера, потрібен Могутній Інструмент (mightful tool) під назвою Oracle Universal Installer, який «важить» близько 60 мегабайт, та ще й написаний на Java. Мало того, що один тільки запуск цього додатка забирає добрих дві-три хвилини, так воно в добавок теж не хотіло працювати на наших комп'ютерах. Довелося розбиратися, як обійтися без нього.
Результати вражають уяву.
Отже, архів з драйвером займає близько 1.4 M. Ті файли, які нам необхідні, в неархівірованном вигляді займають близько 900 K. Все інше - загадкова службова інформація.
При виборі версії роль відіграють перші два числа. Так, для клієнта 8.1.x я брав драйвер версії 8.1.7.8.10, а для клієнта 9.2.x - 9.2.0.6.0. Всі потрібні нам файли зберігаються в трьох архівах, які перебувають в одному з підкаталогів дерева, отриманого після розпакування завантаженого з OTN файлу. Шлях до цього підкаталогу (увага!) - stage \ Disk1 \ stage \ Components \ oracle.p2k.odbc \<версия>\ 1 \ DataFiles. Для зручності подальшої роботи перепишемо всі файли з цих архівів в окремий каталог, а то, що залишилося, безжально видалимо. Мало того, навіть з цих файлів нам знадобиться не все. Ось список файлів для драйвера версії 8.1.x:
А ось тут - для версії 9.2.x:
Списки файлів, як видно, не відрізняються один від одного.
Володарі ж Windows 95/98 / ME можуть знести свою оболонку і встановити нормальну систему або ж скопіювати sq * .dll в каталог ORACLE_HOME \ bin. oraodbc.ini в каталог C: \ WINDOWS. deckan32.dll в ORACLE_HOME \ ODBC. а oraodbcus.msb - в ORACLE_HOME \ ODBC \ Mesg.
У batch-файлі згадується файл oraodbc.reg. Ось він:
Користувачам Windows сімейства NT турбуватися нема про що - batch сам виконає всю необхідну роботу, а ось прихильникам / заручникам 9x доведеться вручну додати до цього файлу два рядки:
зрозуміло, підставивши замість ORACLE_HOME ім'я каталогу, куди встановлений клієнт Oracle.
Ну, і нарешті, фінальний акорд - створення Data Source, тобто джерела даних. Зазвичай це робиться через панель управління, але в кінцевому рахунку, все зводиться до запису в реєстр. Ось приклад такого запису:
В даному випадку ora92 - ім'я джерела. Воно зустрічається тричі - як назва змінної в ключі ODBC Data Sources. як назва ключа і як значення змінної DSN в цьому ключі. В змінної Driver вказується повний шлях до драйвера - користувачам Windows NT не важко отримати його тим же способом, що і в інсталятор. Зверніть увагу, що клієнт Oracle не сприймає прогалини в шляхах, тому треба використовувати короткі імена. Ну, і нарешті, змінні ServerName. Password і UserId я не заповнюю - вважаю за краще робити це в зухвалій програмі, але ви можете заповнити їх прямо в реєстрі.
Дочитали цю статтю до кінця бажаю надійних дисків і достовірних даних!
* Для тих, хто розуміє: цитата з повісті Юрія Сотника «Еліксир Купрум Еса»
** Кажуть, що програма не повинна бути більше, ніж 64 К. Все, що більше, вже не програма, а програма.
*** Існує жарт, що в надрах Microsoft вже готова нова розробка - Microsoft Universal Data Access Components.
Командний мова Windows NT - все ще корявий і хитрий, але вже досить потужний інструмент, яким можна і потрібно користуватися. »» »
як правило обробляти треба не сьогоднішні файли, а файли за кілька днів назад. »» »