Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.007 c
11-1211615317
Valera
2008-05-24 11:48
2010.03.14
КАК работать с SmoothDIB.


2-1263269002
Умник
2010-01-12 07:03
2010.03.14
Различаются ли коды не стандартных клавиатур?


4-1229881658
Пётр
2008-12-21 20:47
2010.03.14
ID процесса по имени exe-шника


4-1230297935
StriderMan
2008-12-26 16:25
2010.03.14
RasEnumConnections


15-1262038333
Германн
2009-12-29 01:12
2010.03.14
LCACC.EXE.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский