|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexey Gradovtsev 2:5020/400 29 Jan 2004 14:31:09 To : Konstantin Tokar Subject : Re: db-файлы Paradox -------------------------------------------------------------------------------- Wed Jan 28 2004 18:22, Konstantin Tokar wrote to Alexey Gradovtsev: KT> настроить ODBC источник для базы - в разделе 'System DSN', предположим, KT> Data Source Name == 'my_db' , тогда надо вызвать KT> $dbh = DBI->connect('dbi:ODBC:my_db', 'user', 'password'); Under Win32 take care to define your DSN as a system DSN, not as a user DSN. Дык. Создаю system DSN под названием paradox. Вызываю: use DBI; $dbh = DBI->connect('dbi:ODBC:paradox', '', '') or die $DBI::errstr; и получаю: === Инструкция по адресу 0x01e... обратилась к памяти по адресу 0x00...010. Память не может быть read. === Я вчера (честное пионерское) долго рыл MSDN на предмет ODBC Drivers, ODBC Programmer's Reference, Managing Data Sources и т.д. Подробно описана структура всего этого дела, куча блок-схем, т.е. крайне полезная информация... для отчетов и рюшек. И HОЛЬ на тему собсно связывания с внешними приложениями. Сегодня с утра удалось кое-что сделать, зайдя сбоку: === use Win32::ODBC; my $Data = new Win32::ODBC("DSN=paradox"); $Data->Sql ("SELECT * FROM COND"); #print $Data->FieldNames (), "\n"; $Data->DumpData (); $Data->Close(); === Результаты: === Dumping Data for connection: 1 Error: "" KEY TKE NOM-U MIN-EMK MAX-EMK RAZM RJAD GGE DOP KLMN Elem TU DOPUSKI GEE - --- --- ----- ------- ------- ---- ---- --- --- ---- ---- -- ------- --- e10-17-1a i1500 50.0 0.000075 0.0036 Ao;ieo a24 0411 D1 -e eAiaai?C?AE Aa0.460.107?o (i)+-5,10,20(%);+50-20(%);+80-20(%) 1 e10-17-1a i1500 50.0 0.0039 0.0056 Ao;ieo a24 0412 D1 -e eAiaai?C?AE Aa0.460.107?o (i)+-5,10,20(%);+50-20(%);+80-20(%) 1 === Т.е. кириллицу надо еще расшифровывать, но это уже почти! KT> вместо 'user', 'password' надо указать свои значения. Да ну елы-палы... Вероятно, вам тут каждый день приходится рассказывать, что такое user и зачем нужен password? Я-то думал, что, задавая вопрос, можно не перечислять: "Знаю, что такое: DBI; DBD::xxx; и т.д. Это не объясняйте". Поэтому вопрос-то был вида: "Имеется набор парадоксальных db-файлов; имеется DBI и ODBC; каким образом все это совместить, чтобы выдрать данные?" Кстати, в том же perldoc DBD::ODBC есть нерабочий пример: Example (using MS Access): my $DSN = 'driver=Microsoft Access Driver (*.mdb);dbq=\\\\cheese\\g$\\perltest.mdb'; my $dbh = DBI->connect(``dbi:ODBC:$DSN'', '','') or die ``$DBI::errstr\n''; Орет, что такого драйвера и не было ни разу в жизни. Хотя он установлен по умолчанию. Это по поводу качества док. А то все любят тыкать: читай, мол, доки сам-не-знаю-какие. Да я с удовольствием - было бы что читать! Хоть бы один пример был, как все это правильно совместить. KT> perldoc DBD::ODBC. К файлам доступа нет, есть доступ к базе данных. К KT> файлам - это через Norton Commander. Здесь дело в следующем: ЧТО там за набор файлов - неизвестно: может, часть похерена, может, это и не база данных целиком. К тому же я без понятия, каким образом Paradox хранит данные. Знаю лишь одно: Norton Commander со своим dbview файлы читает. Почему DBI+DBD::ODBC обламывается, а Win32::ODBC отрабатывает? Такие вот дела. Digitally yours, Alexey. --- ifmail v.2.15dev5.2 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/166795d35d20d.html, оценка из 5, голосов 10
|