Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.14;
Скачать: CL | DM;

Вниз

Работа с 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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.011 c
2-1263028060
alexbor777
2010-01-09 12:07
2010.03.14
Отчет по ПК


15-1261776622
Юрий
2009-12-26 00:30
2010.03.14
С днем рождения ! 26 декабря 2009 суббота


2-1263287890
lewka
2010-01-12 12:18
2010.03.14
Работа с формулами в Word 2007


2-1263335599
AntonioBanderas
2010-01-13 01:33
2010.03.14
Формат строки


15-1258652658
Копир
2009-11-19 20:44
2010.03.14
В России, наконец-то, отменена смертная казнь...