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