TService + TIDHTTPSERVER TAdoConnection

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

TService + TIDHTTPSERVER TAdoConnection

Mesaj gönderen ovural »

bir servis uygulaması yazdık ..

indy http server ile gelen isteklere göre mssql e baglanıp belli işlemler yapıyor ..

aynı anda birden fazla baglantı geldiginde asenkron işlem gerleştiremezsiniz gibi mesaj aliyorum .. farklı bir uygulama geliştirdim test amaclı ve 100 adet thread ile deneme yaptım aynı hatayı aldım .. sonrasında her istek icin AdoConnection create ettim ve AdoQuery ile işlemi gerçekleştirip Free ettigimde hata ile karşılaşmadım ..

simdi HTTPServerCommandGet işleminde AdoConnection Create etmeye calisiyorum ..

CoInitalize hatasi aldim ..
ilk başlangıca CoInitalize(nil) ekledim ve bu sefer AdoQuery.First işleminde patlıyor ..

kaç saattir uğraşıyorum çözemedim ..
bu konuda tecrübesi olan varmıdır ?

yapılmak istenen farklı clientlardan gelen isteklere göre MSSQL de işlem yapıp geriye cevap verecek tabi aynı anda 30-100 istek olabilir ..

çözüm gelmezse php ye dönücem sanırım sırf bu bölüm için :(
Kim ilim öğrenir sonra da onu gizlerse âhirette onun ağzına ateşten bir gem vurulur. (Hadis-i Şerif)
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: TService + TIDHTTPSERVER TAdoConnection

Mesaj gönderen sabanakman »

AdoQuery.First denildiğinde nasıl bir hata geliyor? Ayrıca projenin .dpr dosyasındaki ilk satıra Forms.pas içinde bulunan Application nesnesinin Initialize metodunu çalıştırmayı deneyin.

Kod: Tümünü seç

....
uses Forms,
....
....
begin
  Forms.Application.Initialize;
....
....
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: TService + TIDHTTPSERVER TAdoConnection

Mesaj gönderen SimaWB »

Her thread için AdoConnection create ettiyseniz ve CoInitialize/CoUnInitialize'ı düzgün kullandıysanız problem olmaması gerekiyor. Belkide sorun farklı bir yerdedir. Query'de bir sıkıntı olabilir.

Kod: Tümünü seç

procedure TYourThread.Execute;
begin
   CoInitialize(nil);
   try
     // ADOQuery ve AdoConnection'ı burada create edip kullanıyorsanız problem olmamalı
   finally
     CoUnInitialize;
   end;
end;
There's no place like 127.0.0.1
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: TService + TIDHTTPSERVER TAdoConnection

Mesaj gönderen SimaWB »

Sadece hatırlatma:
AdoQuery.ConnectionString 'e değer atarsanız arka planda kendisi otomatik olarak AdoConnection oluşturur. Dolayısıyla hiç AdoConnection oluşturmadan direk AdoQuery.ConnectionString de kullanılabilir.
There's no place like 127.0.0.1
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

Re: TService + TIDHTTPSERVER TAdoConnection

Mesaj gönderen ovural »

sotun thread ile ilgili degil sanırım cunku testlerinde thread de sıkıntı cıkmadı ..

thread bir Application içindeydi ..

ama sanırım Application yerine Service Application olunca problem cıkıyor ..
şu acil oldugu icin sistemi php üzerine kaydırdım .. ama yinede bu konu üzerinde devam edicem ..
Kim ilim öğrenir sonra da onu gizlerse âhirette onun ağzına ateşten bir gem vurulur. (Hadis-i Şerif)
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: TService + TIDHTTPSERVER TAdoConnection

Mesaj gönderen sabanakman »

Benzeri bir projede (indy+ado+servis uygulaması için) başlangıç aşamasındayım ve bunun gibi farklı form olmayan uygulamalarımda sık sık CoInitalize hatası ile başlayan türlü hatalar alırdım. Tabi bunlar genelde .dll olurdu. Kod yapısını pek takip edemedim ama Forms.Application.Initialize; kodu bir çok işlem yapıyor galiba. Zira bunu keşfettikten sonra hatalar kesildi. Eğer probleminiz bu kodla çözülmezse aynı dertler projeye başladığımda beni de bulacak demektir. :mrgreen:
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla