Текущий архив: 2002.04.18;
Скачать: CL | DM;
Вниз
Вопрос по ADO+ODBC+Paradox Найти похожие ветки
← →
TriNeT (2002-03-25 06:36) [0]Доброго времени суток.
Опять прошу помощи у всезнающего ALL. Проблема с сабжем состоит в следующем:
Имеется две базы данных (Paradox) на одном из файловых серверов. Эти базы ведутся своими приложениями. И имеется моя программа, которой необходимо периодически обращаться к этим базам, чтобы считать некоторую информацию. Обращение происходит в режиме read-only.
В силу определенных обстоятельств мне приходится использовать ADO а не BDE (хотя я на эти обстоятельства вовсе даже не жалуюсь). Так вот, чтобы достучаться до Paradox-таблиц через ADO мне приходится использовать ODBC (по-моему других провайдеров в стандартном комплекте нет, а другими лучше не пользоваться). Создаю системный DSN, связываю его с драйвером Microsoft Paradox Driver, указываю сетевой каталог (насколько я понимаю, это путь к файлу pdoxusrs.net). Остальные параметры, как то - путь к таблицам, определяю в своей программе и динамически формирую ConnectionString в TADOConnection.
При тестировании на локальной машине, все проходит нормально, устанавливается соединение с базой, данные читаются и все такое. Ну это и понятно, поскольку я и есть единственный юзер для этой базы. Но как только переносишь испытания на реальную сеть, при попытке соединения с базой вываливается exception с номером ошибки 11270 и описанием, информативным, как инструкция по использованию туалетной бумаги: "Непредвиденная ошибка драйвера". Описания этой ошибки найти не смог. Единственное, что я выяснил - точно такая же ошибка выскакивает при использовании любой программы просмотра таблиц БД (в частности, "родной" офисный msqry), причем в DSN я указываю ВСЕ необходимые параметры.
Из-за этого у меня ощущение, что то-ли я неправильно указываю параметры в DSN, то ли проблема как-то связана с файлом Pdoxusrs.net
Люди, кто сталкивался с подобным - поделитесь опытом. А кто не сталкивался, может быть подкинете идеюку-другую? Может быть я просто зациклился и не вижу того, что лежит на поверхности. Буду благодарен всем, кто откликнется!
← →
sniknik (2002-03-25 09:08) [1]Попробуй все же прямую связку без ODBC.
строка подключения к Paradox вполне стандартна :).
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=Paradox 4.0;Persist Security Info=False
Выдержка из Хелпа. Номера 11270 не нашол, было бы конкретней но можно еще в MSDN поискать.
Непредвиденная ошибка драйвера внешней базы данных <номер ошибки>. (Ошибка 3275)
Драйвер внешней (указанной) базы данных возвращает ошибку. Такие ошибки являются результатом попытки выполнения операции, не поддерживаемой базами данных этого типа.
т.е. по сути у тебя какаято операция поддерживается локальным драйвером и не поддерживается сетевым.
← →
TriNeT (2002-03-25 10:48) [2]2 sniknik ©
Спасибо за то, что откликнулись.
Попробовал. Введя дословно ту ConnectionString, которая была указана в примере (предварительно естественно заменив пути), при проверке подключения получил, как тот фашист - гранату, следующее сообщение:
[Ошибка Microsoft Data Link]
"Сбой проверки подключения из-за ошибки при инициализации поставщика. Невозможно найти устанавливаемый ISAM"
Проверял даже не на сети, а на локальном варианте.
Вообще-то я очень удивился, увидев, что вы предлагаете использовать Майкрософтский Jet, который вроде-бы предназначен для доступа к ACCESS"у, в качестве провайдера для Paradox. Но поскольку обратного никто не утверждал, то наверное дело в другом.
← →
sniknik (2002-03-25 11:24) [3]Не все правильно. просто Jet кроме Access еще кое чего поддерживает смотри в реестре путь.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ISAM Formats
а со строкой извини по памяти писал вот рабочая из программы выдернул
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Mode=ReadWrite;Extended Properties=Paradox 4.x;Persist Security Info=False
на самом деле и та будет работать если поставить 4.x вместо 4.0
← →
TriNeT (2002-03-26 08:59) [4]2 sniknik ©
Доброго времени суток!
Проверить удалось пока только в локальном варианте. ПОЛУЧИЛОСЬ!!!! Правда если выставлять дополнительно флаг "Share deny none", то вываливается exception с сообщением о невозможности завершить операцию и еще чего-то там. В общем-то я пока не могу оценить, нужен ли мне этот флаг, просто в самом начале столкнулся с такой ситуацией.
Пока не могу испытать на реальной сети, но думаю сегодня выкрою время и проверю.
Сорри за сомнения, я честно о таких возможностях Jet"а не знал. А если не секрет, откуда такие знания? ;)
Огромное спасибо за помощь. О результатах сетевых испытаний напишу позже.
← →
TriNeT (2002-03-27 05:12) [5]2 sniknik ©
Хочется витеевато выругаться, но не буду. Оказывается трабл вовсе не в сабже, а в сервере, о технических характеристиках я как-то не догадывался. В общем-то по мощности сервером его нельзя назвать даже с натяжкой. Короче говоря мои обращения к базам на нем почему-то оказываются последней соломинкой на спине верблюда. Перенеся базы и перенастроив линки на другой сервер, все сразу заработало, причем как ODBC, так и тот способ, который вы мне показали.
В общем сабж снимается, но теперь использую Ваш подход.
Еще раз спасибо.
Страницы: 1 вся ветка
Текущий архив: 2002.04.18;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.004 c