Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Datasnap mysql donma sorunu.
#1
Merhaba ustalarım. Datasnap dsauthenticationmanager kısmında kullanıcı adı şifre kontrolü yapıyorum. Mysql olarak yapıyorum lakin belli bir süre sonra donmalar meydana geliyor ve sunucu kullanılmaz oluyor. Anlık olarak 300 kullanıcıya çıkabiliyor bazen. Merak ettiğim konu şu. Mysql bağlantısını auth kısmında create yapıyorum ve işlem bitince free yapıyorum. Donma sebebi bu olabilirmi ? Doğru kullanım bumudur ? Formda objeleri oluşturup kullanmakmı doğrusudur yardımlarınızı bekliyorum.


Kullanıdığım kod.


procedure TScForm.DSAuthenticationManager1UserAuthenticate(
 Sender: TObject; const Protocol, Context, User, Password: string;
 var valid: Boolean; UserRoles: TStrings);
 var
 con1: TSQLConnection;
 conqurty: TMyQuery;
begin

con1 :=TSQLConnection.Create(nil);
conqurty:=  TMyQuery.Create(nil);
try
conqurty.Connection:= con1;


 QUsr.Close;
 QUsr.SQL.Text:='select * from **** where username='+QuotedStr(User);
 QUsr.Open;

 if QUsr.RecordCount = 0 then
 valid := false
 else
 valid := True;
finally

conqurty.Free;
con1.Free;
end;
end;
Cevapla
#2
Datasnap projesi oluştururken, project wizard ekranında aşağıdaki sırayla gitmeni tavsiye ederim;

Forms Application > VCL Application > TDataModule

Bu şekilde ServerMethods1 ve ServerContainer1 aslında TDataModule halindedir.

ServerMethods1 üzerine koyacağın TFDConnection nesnesi üzerinden veritabanı bağlantılarını yaparsan başın ağrımaz

DSAuthenticationManager1UserAuthenticate bulunduğu UNIT türü (her ne kadar TDataModule olsa bile) Authentication & Transportation amaçlı yapılmış, allengirli veritabanı işlemleri için tavsiye edilmiyor (her ne kadar Session bile olsa)

ServerContainer1 üzerine birer adet FDConnection1, FDQuery1, FDGUIxWaitCursor1, FDPhysMySQLDriverLink1 koy, sonra da aşağıdaki kodu yaz, cillop gibi çalışır

Aşağıdaki kodu denedim, çalışıyor

procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(Sender: TObject; const Protocol, Context, User, Password: string; var valid: Boolean; UserRoles: TStrings);
begin
FDConnection1.Connected:=True;
FDQuery1.Active:=False;
FDQuery1.SQL.Clear;
FDQuery1.Params.Clear;
FDQuery1.SQL.Add('SELECT * FROM user_table ');
FDQuery1.SQL.Add('WHERE user_name='+QuotedStr(User)+' AND pass_word='+QuotedStr(Password));
FDQuery1.Active:=True;
FDQuery1.First;
if FDQuery1.RecordCount=0 then
valid:=false
else
valid:=True;
FDQuery1.Active:=False;
FDConnection1.Connected:=False;
end;
Cevapla
#3
(15-02-2020, Saat: 13:40)otonomi Adlı Kullanıcıdan Alıntı: Datasnap projesi oluştururken, project wizard ekranında aşağıdaki sırayla gitmeni tavsiye ederim;

Forms Application > VCL Application > TDataModule

Bu şekilde ServerMethods1 ve ServerContainer1 aslında TDataModule halindedir.

ServerMethods1 üzerine koyacağın TFDConnection nesnesi üzerinden veritabanı bağlantılarını yaparsan başın ağrımaz

DSAuthenticationManager1UserAuthenticate bulunduğu UNIT türü (her ne kadar TDataModule olsa bile) Authentication & Transportation amaçlı yapılmış, allengirli veritabanı işlemleri için tavsiye edilmiyor (her ne kadar Session bile olsa)

ServerContainer1 üzerine birer adet FDConnection1, FDQuery1, FDGUIxWaitCursor1, FDPhysMySQLDriverLink1 koy, sonra da aşağıdaki kodu yaz, cillop gibi çalışır

Aşağıdaki kodu denedim, çalışıyor

procedure TServerContainer1.DSAuthenticationManager1UserAuthenticate(Sender: TObject; const Protocol, Context, User, Password: string; var valid: Boolean; UserRoles: TStrings);
begin
 FDConnection1.Connected:=True;
 FDQuery1.Active:=False;
 FDQuery1.SQL.Clear;
 FDQuery1.Params.Clear;
 FDQuery1.SQL.Add('SELECT * FROM user_table ');
 FDQuery1.SQL.Add('WHERE user_name='+QuotedStr(User)+' AND pass_word='+QuotedStr(Password));
 FDQuery1.Active:=True;
 FDQuery1.First;
 if FDQuery1.RecordCount=0 then
   valid:=false
 else
   valid:=True;
 FDQuery1.Active:=False;
 FDConnection1.Connected:=False;
end;

Tamamdır hocam test edeceğim teşekkür ederim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Dataset BeforePost'da Abort Sorunu Emrah Karagöz 7 1.302 29-03-2020, Saat: 15:49
Son Yorum: sabanakman
  UniURLFrame ile pdf görüntüleme sorunu veski 2 213 27-03-2020, Saat: 22:41
Son Yorum: veski
  Veritabanı Bağlantı Sorunu MEDCEZİR 5 205 26-03-2020, Saat: 18:21
Son Yorum: SimaWB
  sms gönderiminde türkçe karakter sorunu erdogan 2 188 18-03-2020, Saat: 16:27
Son Yorum: erdogan
  String'e çevrilmiş Stream Veri JsontoDataSet Dönüştürme Sorunu. pro_imaj 13 683 06-03-2020, Saat: 15:19
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi