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
firebird server geç başladığı için başlangıçdaki programım h
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: firebird server geç başladığı için başlangıçdaki program
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;
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;
Re: firebird server geç başladığı için başlangıçdaki program
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.
Re: firebird server geç başladığı için başlangıçdaki program
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
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
Re: firebird server geç başladığı için başlangıçdaki program
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
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 !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: firebird server geç başladığı için başlangıçdaki program
teşekkürler arkadaşlar