Форум: "Начинающим";
Текущий архив: 2010.03.14;
Скачать: [xml.tar.bz2];
ВнизРабота с tAdoQuery Найти похожие ветки
← →
Евгений Р. (2010-01-12 18:16) [0]Если запустить программу с активным tAdoQuery, то приложения с BDE не запускаются. Также приложение не запускается второй раз или при запущенном приложении с BDE. В обоих случаях ошибка 15877.
использую провайдер: Microsoft.Jet.OLEDB.4.0 или MSDASQL.1
Если запущена среда Д5, то конфликт между приложениями отсутствует, а с BDE - продолжается.
Существует ли такое ограничение в действительности или я что-то делаю не так?
← →
sniknik © (2010-01-12 19:58) [1]Jet использует bde, отсюда и конфликт... но его можно обойти если прописать в реестре параметр для jet чтобы он пользовался только своим встроенным. (и есть кое какие ограничения в этом случае, ну например paradox 7.x становиться недоступным).
← →
Евгений Р. (2010-01-12 20:31) [2]Спасибо Sniknik!
> но его можно обойти если прописать в реестре параметр для
> jet
какой параметр или где об этом можно прочесть?
но конфликт возникает не только при JET, но и при MSDASQL.1?
← →
sniknik © (2010-01-12 20:56) [3]> какой параметр или где об этом можно прочесть?
BDE, где то в msdn.
> но конфликт возникает не только при JET, но и при MSDASQL.1?
odbc драйвера в этом случае используют jet, т.что без разницы.
← →
Евгений Р. (2010-01-12 21:07) [4]Понятно.
А по поводу конфликта между двумя экземплярами программы и нормальной работе нескольких экземпляров программы при запущенной делефе что-нибудь скажете?
← →
sniknik © (2010-01-12 21:24) [5]а смысл? тебе это не поможет.
← →
Anatoly Podgoretsky © (2010-01-12 21:45) [6]Конечно не поможет, если он до сих пор не удосужился сообщить какая у него БД
← →
Евгений Р. (2010-01-12 22:25) [7]DBase
← →
Anatoly Podgoretsky © (2010-01-12 22:35) [8]> Евгений Р. (12.01.2010 22:25:07) [7]
Для одновременной работы как минимум требуется устанавливать значение PrivateDir
← →
Евгений Р. (2010-01-12 23:03) [9]Представляю, что на меня сейчас может обрушиться, но я не нашел свойства "PrivateDir" ни в одном из компонентов модуля ADODB.
← →
Anatoly Podgoretsky © (2010-01-12 23:51) [10]> Евгений Р. (12.01.2010 23:03:09) [9]
Ищи в БДЕ
← →
Евгений Р. (2010-01-13 00:09) [11]Наверное я недостаточно разъяснил вопрос:
1.Есть простейшая программа, содержащая tAdoQuery и делающая выборку из из DBF файлов.
2.Программа правильно работает, когда она запускается сама.
3.Второй экземпляр программы, запущенный на этом компьютере при нажатии кнопки "выполнить запрос" выдает ошибку 15877.
4.Если в первом экземпляре нажать кнопку "закрыть запрос", то второй экземпляр работает правильно.
5.Если запущена среда Delphi5, то 10 запущенных экземпляров программы выполняются правильно.
Вопрос: что делает запущенная среда Delphi5 для того, чтобы все запущенные экземпляры программы работали? Что нужно доделать в программе, чтобы несколько запущенных экземпляров могли работать без запущенной среды Delphi?
← →
Anatoly Podgoretsky © (2010-01-13 00:28) [12]Ты же писал совсем другое, не про второй экземпляр, а "Если запустить программу с активным tAdoQuery, то приложения с BDE не запускаются."
← →
Евгений Р. (2010-01-13 00:39) [13]
> [12]
Следующее предложение этого абзаца:"Также приложение не запускается второй раз или при запущенном приложении с BDE. В обоих случаях ошибка 15877."
Но все равно нечеткость формулировки признаю за собой.
Пояснения по BDE, достаточно четкие, были в [1] и [3]
← →
Германн © (2010-01-13 00:39) [14]
> что делает запущенная среда Delphi5
Возможно (если АП прав) устанавливает PrivateDir и NetDir.
> Что нужно доделать в программе, чтобы несколько запущенных
> экземпляров могли работать без запущенной среды Delphi?
Возможно (если АП прав) установить значения параметров Session.PrivateDir и Session.NetFileDir.
Хотя мои знания ограничиваются работой непосредственно с BDE. И с ошибкой "ERRCODE_CANNOTLOADDRV" пока не сталкивался.
← →
Anatoly Podgoretsky © (2010-01-13 00:42) [15]> Евгений Р. (13.01.2010 00:39:13) [13]
Причина таже PrivateDir, для БДЕ ты можешь это разделить, для АДО нет
← →
Евгений Р. (2010-01-13 00:52) [16]Так в ADO есть аналого PrivateDir?
Не горжусь этим, но в BDE тоже PrivateDir никогда не заполнял. Но проблем от этого никогда не было. В т.ч. и при сетевой работе.
А работающий экземпляр программы с AdoQuery благополучно делает выборки из работающей БД, т.е. разделенный доступ проходит.
← →
sniknik © (2010-01-13 01:02) [17]для ADO, а вернее для jet, а еще вернее для его исамов работающих через bde, в варианте прямого подключения к нему (а не том для которого они были сделаны, внешних линков) выход в упомянутом выше параметре. в режиме неиспользования установленного bde, тогда и директории пересекаться не будут.
а вообще, лучший выход это не пользоваться ADO для древних баз...
← →
Евгений Р. (2010-01-13 01:10) [18]
> а вообще, лучший выход это не пользоваться ADO для древних
> баз...
вообще то я планирую только для временных таблиц. Но пока работает нестабильно.
← →
Германн © (2010-01-13 01:11) [19]
> Anatoly Podgoretsky © (13.01.10 00:42) [15]
>
> > Евгений Р. (13.01.2010 00:39:13) [13]
>
> Причина таже PrivateDir, для БДЕ ты можешь это разделить,
> для АДО нет
>
Если автор не врет
> Если запущена среда Delphi5, то 10 запущенных экземпляров
> программы выполняются правильно.
>
, то возможны варианты.
> sniknik © (13.01.10 01:02) [17]
>
> для ADO, а вернее для jet, а еще вернее для его исамов работающих
> через bde, в варианте прямого подключения к нему (а не том
> для которого они были сделаны, внешних линков) выход в упомянутом
> выше параметре. в режиме неиспользования установленного
> bde, тогда и директории пересекаться не будут.
>
> а вообще, лучший выход это не пользоваться ADO для древних
> баз...
>
Для который BDE самое родное.
← →
sniknik © (2010-01-13 01:19) [20]> вообще то я планирую только для временных таблиц. Но пока работает нестабильно.
используй базу access (jet). "родная ипостась" на удивление стабильна.
← →
Anatoly Podgoretsky © (2010-01-13 01:26) [21]> sniknik (13.01.2010 01:19:20) [20]
Чего удивляться, ведь построена она по принципам клиент серверной идеологии и физические транзакции на запись.
← →
Евгений Р. (2010-01-13 01:33) [22]
> [20]
до этого работал с BDE. Поэтому Db, DBF - родные. access - совершенно не знаю.
> [19]
> Если автор не врет
Б... буду. Только что проверил.
← →
Германн © (2010-01-13 01:45) [23]
> Б... буду. Только что проверил.
Тогда смотри. Среда Delphi всегда устанавливает свои настройки. И эти настройки (запущенной среде) используют все программы, которые используют BDE, если они не задают свои настройки.
← →
Евгений Р. (2010-01-13 01:58) [24]
> [23]
Я также думаю. Но как узнать, что ставит среда Delphi?
И еще одно, может Вам поможет мне помочь:
AdoQuery я открываю в RunTime, заполняю ConnectionString и SQL. Другие компоненты ADO не использую.
← →
Германн © (2010-01-13 02:07) [25]
> Евгений Р. (13.01.10 01:58) [24]
>
>
> > [23]
>
> Я также думаю. Но как узнать, что ставит среда Delphi?
Возможно Толя и/или Коля завтра тебе помогут.
Моих знаний тут уже не хватает.
← →
Palladin © (2010-01-13 02:17) [26]
> access - совершенно не знаю.
при использовании адо - разница минимальна
← →
sniknik © (2010-01-13 12:09) [27]> Но как узнать, что ставит среда Delphi?
а это разве уже несколько раз в этой ветке не повторялось?
> AdoQuery я открываю в RunTime, заполняю ConnectionString и SQL. Другие компоненты ADO не использую.
вот это глупо, хотя с вопросом скорее всего не связанно. первым, и если пожелаешь единственным компонентом должен быть ADOConnection, все остальные только в паре с ним.
ну и использовать стоит ADOCommand и ADODataSet, а все остальное выкинуть.
причины есть, но я их устал уже повторять, надоело, просто поверь на слово.
> Возможно Толя и/или Коля завтра тебе помогут.
ну, ничего принципиально нового к тому что сказано добавить нечего. никаких "тайных" знаний/параметров на этот счет нет. т.что если до сих пор не работает, то значит ничего из "насоветованного" не применил или применил криво.
← →
Евгений Р. (2010-01-13 21:30) [28]Добавил на форму ADOConnection - все заработало правильно. Работает правильно даже тогда, когда AdoQuery подключено через свою connectionString, а ADOConnection.connected=false.
Значит ADOConnection "устанавливает те настройки", которые ожидал от среды Delphi.
> [27]
> причины есть, но я их устал уже повторять, надоело, просто
> поверь на слово
жалко, было бы интересно. В инете недостатки AdoQuery не нашел.
Всем большое спасибо за "насоветованное"!!!!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.03.14;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.005 c