firebird server geç başladığı için başlangıçdaki programım h

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

firebird server geç başladığı için başlangıçdaki programım h

Mesaj gönderen forumsad »

arkadaşlar ilğinç bir sorunum var

xp açıldığında programım otomatik açılsın istiyorum
ama firebird server sanırım başlanğıçdan sonra aktif oluyor dolayısıyla programım firebird bağlantı hatası veriyor

bu sorunu nasıl düzeltebiliriz

saygılarımla
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: firebird server geç başladığı için başlangıçdaki program

Mesaj gönderen forumsad »

firebird server başlangıç klasörüne koyduğumuz programdan daha geç çalışıyor kesinleşti..

programımı şu şekilde kontrol etmek zorunda kaldım..

önce küçük bir program yazdım başlanğıçta çalışıyor timer ile sürekli firebird server devreye girdimi bakıyor girmedi ise programı açmıyor
firebird server devreye girince asıl programımı çalıştırıyor...

ben şimdilik bu şekilde çözdüm sorunu daha farklı fikirleri olan varsa paylaşırsa sevinirim..



fireibrd server kontrol eden webden bulduğum kod;

uses WinSvc;

Kod: Tümünü seç

function ServiceGetStatus(sMachine, sService: string ): DWord;
var
schm,
schs : SC_Handle;
ss : TServiceStatus;
dwStat : DWord;
begin
dwStat := 0;

schm := OpenSCManager(PChar(sMachine), nil, SC_MANAGER_CONNECT);

if (schm > 0) then begin
schs := OpenService(schm, PChar(sService), SERVICE_QUERY_STATUS);

if (schs > 0) then begin
if (QueryServiceStatus(schs, ss)) then begin
dwStat := ss.dwCurrentState;
end;

CloseServiceHandle(schs);
end;

CloseServiceHandle(schm);
end;

Result := dwStat;
end;

Kod: Tümünü seç

procedure TForm1.Timer2Timer(Sender: TObject);
var
FirebirdIsRunning:DWORD;
drm:boolean;
begin
FirebirdIsRunning:=ServiceGetStatus('','FirebirdServerDefaultInstance') ;
//FirebirdIsRunning := (ServiceGetStatus('','FirebirdServerDefaultInstance') <> SERVICE_RUNNING);

//ShowMessage(IntToStr(FirebirdIsRunning));
ListBox1.Items.Add(IntToStr(FirebirdIsRunning));
end;
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: firebird server geç başladığı için başlangıçdaki program

Mesaj gönderen thelvaci »

Programınızı bir servis uygulaması olarak tasarlayıp, dependency servisi olarak Firebird'ü seçebilirsiniz; yada normal uygulamanız içinde bir arka plan thread'i çalıştırıp ara ara firebird servisini kontrol edebilir; servisin çalışır duruma gelmesine mukabil, ana thread'inizi bilgilendirebilir ve kaldığınız yerden devam edebilirsiniz.
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: firebird server geç başladığı için başlangıçdaki program

Mesaj gönderen forumsad »

server uygulaması konusunda hiç tecrübem olmadı ...ama araştıracağım..

sonradan benimde aklıma geldi ikinci bir program yaazmaktansa
program çalışınca form1 çalışır form1 deki timer sürekli firebird'ü kontrol eder firebird devreye girincede programın diğer form ve ünitlerini açar

hocam;
" bir arka plan thread'i çalıştırıp " timer olmadan thread ile bir şeyi sürekli kontrol edebilirmiyiz...

saygılarımla
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2382
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: firebird server geç başladığı için başlangıçdaki program

Mesaj gönderen freeman35 »

timer da bir thread dir, ama thread lere fazla yüklenme söylemesi basittir ama onlarla başa çıkmak daha zordur. firebird server olarak kullanmayacaksan, yani db ye network üzerinden bağlanmıyacaksan embedded olarak kullan. Embedded sadece localde ki db lerle çalışır. bir servis yada kurulum gerektirmez dosyaları kopyalaman yeterli
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: firebird server geç başladığı için başlangıçdaki program

Mesaj gönderen forumsad »

teşekkürler arkadaşlar
Cevapla