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

Вниз

Сервис и ADO   Найти похожие ветки 

 
Knight ©   (2010-04-01 14:47) [0]

Почему-то в сервисе сбоит подключение к базе.
Если размещаю ADOConnection на форме TService и делаю DRSU_Connection.Open то соединения не происходит, если сделать ДатаМодуль и делаю там процедуру, тоже не работает, а если в DataModuleCreate(), то работает... может, что-то не то делаю?


 
turbouser ©   (2010-04-01 14:50) [1]

DRSU_Connection.LoginPrompt=true?


 
Knight ©   (2010-04-01 14:52) [2]

False


 
Knight ©   (2010-04-01 14:53) [3]

сервер, база, логин-пароль прописаны в ConnectionString ... в общем всё как всегда... но всегда работало, а в сервисе упёрлось.


 
Медвежонок Пятачок ©   (2010-04-01 14:54) [4]

может, что-то не то делаю?

логировать надо ошибки в неинтерактивных приложениях.
тогда будет видно, что в нитке сервиса не был произведен вызов CoInitialize


 
Knight ©   (2010-04-01 14:55) [5]

В событиях винды засветилось...

"В записи события содержится следующая информация: Не был произведен вызов CoInitialize."


 
Медвежонок Пятачок ©   (2010-04-01 14:56) [6]

вот видишь как все просто


 
Knight ©   (2010-04-01 14:56) [7]

А что с этим делать?


 
Медвежонок Пятачок ©   (2010-04-01 14:57) [8]

ну как бы по-русски же написано.
"не был произведен вызов"

произведи вызов


 
Knight ©   (2010-04-01 15:00) [9]

Это я понял, а почему именно в сервисе? Никогда такого не вызывал.. и прекрасно работает.


 
Knight ©   (2010-04-01 15:01) [10]

Или в TApplication это зашито, а в TServiceApplication нет?


 
Медвежонок Пятачок ©   (2010-04-01 15:02) [11]

не только в сервисе.
в гуи тоже надо.

и оно там вызывается. в одном из модулей который включен в юзез гуи проекта по дефолту


 
KSergey ©   (2010-04-01 15:15) [12]

> Медвежонок Пятачок ©   (01.04.10 14:54) [4]
> не был произведен вызов CoInitialize

Супертелепат!


 
KSergey ©   (2010-04-01 15:17) [13]

> Knight ©   (01.04.10 15:00) [9]
> Это я понял, а почему именно в сервисе? Никогда такого не вызывал.. и прекрасно работает.

потому как многопоточек не писал с ADO. Писал бы - сразу бы знал :)
А в сервисе для основного действа - как раз доп. поток запускается.


 
12 ©   (2010-04-01 15:20) [14]

стандартная трабла, в общем-то
консольки тоже так брыкаются


 
tesseract ©   (2010-04-01 15:29) [15]

Хорошо, что пока на ADO не пишут драйвера.......


 
Knight ©   (2010-04-01 15:29) [16]

Правильно будет прописать CoInitialize(nil) в ServiceStart(), а CoUninitialize в ServiceStop()?


 
turbouser ©   (2010-04-01 15:33) [17]


> Knight ©   (01.04.10 15:29) [16]

лучше в Create и Destroy


 
Медвежонок Пятачок ©   (2010-04-01 15:37) [18]

не лучше.
это разные нитки


 
Knight ©   (2010-04-01 15:37) [19]

Спасибо всем.

Всё заработало.


 
Медвежонок Пятачок ©   (2010-04-01 15:38) [20]

Киэйт выполняется не в той нитке, в которой будет работать адо коннекшен.

а потому в криэйт вызывать бесполезно.


 
Knight ©   (2010-04-01 15:39) [21]


> Медвежонок Пятачок

Да в ServiceStart() и ServiceStop() работает, а в Create-Destroy вываливается.


 
Anatoly Podgoretsky ©   (2010-04-01 16:27) [22]

> Knight  (01.04.2010 15:29:16)  [16]

Лучше в начале Execute


 
Knight ©   (2010-04-01 16:41) [23]


> Anatoly Podgoretsky

Я сам никаких потоков не создаю... оно само :)



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.076 c
2-1267610535
@!!ex
2010-03-03 13:02
2010.08.27
Как в синхронном режиме получить ответ от TCP сервера?


2-1272386845
romario
2010-04-27 20:47
2010.08.27
Как передать данные из одной процедуры в другую


2-1273563415
Uzer2010l
2010-05-11 11:36
2010.08.27
Коллизия обработчиков


15-1268021733
rust-02
2010-03-08 07:15
2010.08.27
Нужно реализовать тестовую программу


2-1271096606
Б
2010-04-12 22:23
2010.08.27
Как узнать, что в приложении течёт память?