Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

служба и база данных [D7, WinXP]


HelpMy ©   (2005-09-23 14:24:00) 

При создании Service
создаю IBDataBase
procedure TService3.ServiceCreate(Sender: TObject);
begin
 try
   Base := TIBDatabase.Create(Application);
   AddToLog('1');
   Base.DatabaseName := 'C:\dbase\XXX.GDB';
   AddToLog('2');
   Base.Params.Add('user_name=sysdba');
   AddToLog('3');
   Base.Params.Add('password=masterkey');
   AddToLog('4');
   Base.Params.Add('lc_ctype=WIN1251');
   AddToLog('5');
   Base.LoginPrompt := False;
   AddToLog('6');
 except
   on E: Exception do
   begin
     AddToLog(E.ClassName + '  ' + e.Message);
   end;
 end;
end;

В onExecute пытаюсь открыть базу
procedure TService3.ServiceExecute(Sender: TService);
begin
 try
   Base.Open;
   AddToLog('7');
 except
   on E: Exception do
   begin
     AddToLog(E.ClassName + '  ' + e.Message);
   end;
 end;
 while Runing do
 Sleep(100);
 ServiceThread.ProcessRequests(False);  {}
end;

Все действия пишутся в лог:
16:15:06  1
16:15:06  2
16:15:06  3
16:15:06  4
16:15:06  5
16:15:06  6
16:15:06  EIBInterBaseError  unavailable database

Чего не хватает, что бы открыть базу

Если помещаю компонент базы с теми же настройками, то в дизайне без проблем устанавливается Connected d True


Digitman   (2005-09-23 15:41:00) [1]


> simpson ©   (23.09.05 14:35) [1]


ну это ты чушь, положим, сморозил)

при чем здесь сервис или не сервис ?

вся разница между

'C:\dbase\XXX.GDB

и

hostname:C:\dbase\XXX.GDB

- в требуемом клиенту протоколе инф.обмена с СУБД


HelpMy   (2005-09-23 14:39:00) [2]

Спасииибо simpson ©   (23.09.05 14:35) [1]
Я чувствовал, что какая то маленькая козявочка все тормозит


simpson   (2005-09-23 14:35:00) [3]

Из сервиса так нельзя. Нужно делать так:

 Base.DatabaseName := 'hostname:C:\dbase\XXX.GDB';


где hostname - имя сервера, на котором лежит эта база, если на этом же компьютере - то "localhost".


Наверх

Титульная страница Поиск, карта сайта Написать письмо