Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
dll'ye FDConnectionu bağlama
#1
Merhaba, 

Kendi özel dll oluşturdum. Bu dll'den farklı zamanlarda db kontrolü yapılacak. 
dll'de Create edilen TFDQueryi, uygulamadaki FDConnectiona nasıl bağlaya bilirim?


Procedure DllMesaj; Export; // Kullanılacak Dll fonksiyonun kendisi
begin
  TThread.CreateAnonymousThread(
    procedure
    var
      xFDQ: TFDQuery;
    begin
      TThread.Synchronize(Nil,
        procedure
        begin
          xFDQ := TFDQuery.Create(Nil);
          try
            xFDQ.Connection :=  Form1.FDConnection;
            xFDQ.Active := False;
            xFDQ.Close;
            xFDQ.SQL.Clear;
            xFDQ.SQL.Add('Select * From USERS');
            xFDQ.Prepared := True;
            xFDQ.Open;
          finally
            xFDQ.Free;
          end;
        end);
    end).Start;
end;
Cevapla
#2
FDConnection'ı DLL'indeki metodlarına parametre olarak ver.
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla
#3
(10-11-2019, Saat: 13:40)BGNew Adlı Kullanıcıdan Alıntı: Merhaba, 

Kendi özel dll oluşturdum. Bu dll'den farklı zamanlarda db kontrolü yapılacak. 
dll'de Create edilen TFDQueryi, uygulamadaki FDConnectiona nasıl bağlaya bilirim?


Procedure DllMesaj; Export; // Kullanılacak Dll fonksiyonun kendisi
begin
  TThread.CreateAnonymousThread(
    procedure
    var
      xFDQ: TFDQuery;
    begin
      TThread.Synchronize(Nil,
        procedure
        begin
          xFDQ := TFDQuery.Create(Nil);
          try
            xFDQ.Connection :=  Form1.FDConnection;
            xFDQ.Active := False;
            xFDQ.Close;
            xFDQ.SQL.Clear;
            xFDQ.SQL.Add('Select * From USERS');
            xFDQ.Prepared := True;
            xFDQ.Open;
          finally
            xFDQ.Free;
          end;
        end);
    end).Start;
end;

Daha önce uyarmış olmama rağmen hâla thread’i hatalı kullanıyorsunuz. Şu anda yazdığınız bu kod, main thread içinde çalışır. Thread oluşturmanızın hiç bir anlamı ve faydası yok şu aşamada.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#4
(10-11-2019, Saat: 16:45)uparlayan Adlı Kullanıcıdan Alıntı: FDConnection'ı DLL'indeki metodlarına parametre olarak ver.


Anlamadım, sizden ricam biraz daha anahtar kelime verir misiniz.

(10-11-2019, Saat: 18:15)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı:
(10-11-2019, Saat: 13:40)BGNew Adlı Kullanıcıdan Alıntı: Merhaba, 

Kendi özel dll oluşturdum. Bu dll'den farklı zamanlarda db kontrolü yapılacak. 
dll'de Create edilen TFDQueryi, uygulamadaki FDConnectiona nasıl bağlaya bilirim?


Procedure DllMesaj; Export; // Kullanılacak Dll fonksiyonun kendisi
begin
  TThread.CreateAnonymousThread(
    procedure
    var
      xFDQ: TFDQuery;
    begin
      TThread.Synchronize(Nil,
        procedure
        begin
          xFDQ := TFDQuery.Create(Nil);
          try
            xFDQ.Connection :=  Form1.FDConnection;
            xFDQ.Active := False;
            xFDQ.Close;
            xFDQ.SQL.Clear;
            xFDQ.SQL.Add('Select * From USERS');
            xFDQ.Prepared := True;
            xFDQ.Open;
          finally
            xFDQ.Free;
          end;
        end);
    end).Start;
end;

Daha önce uyarmış olmama rağmen hâla thread’i hatalı kullanıyorsunuz. Şu anda yazdığınız bu kod, main thread içinde çalışır. Thread oluşturmanızın hiç bir anlamı ve faydası yok şu aşamada.


Thread ilgili bilgilendirmenizden sonra bir çok kod inceledim. Fakat İnternet ortamında Thread database ile ilgili örnek yok. 
Maalesef bu konuda İnternet tam bir çöplük durumunda.
Cevapla
#5
(11-11-2019, Saat: 11:12)BGNew Adlı Kullanıcıdan Alıntı:
(10-11-2019, Saat: 16:45)uparlayan Adlı Kullanıcıdan Alıntı: FDConnection'ı DLL'indeki metodlarına parametre olarak ver.
Anlamadım, sizden ricam biraz daha anahtar kelime verir misiniz.

"Metod" dediğimiz zaman kastettiğimiz şey duruma göre "Fonksiyon" veya "prosedür"dür. Hazırladığınız DLL'de, "DLLMesaj" adlı bir metodunuz var. O metoda kullanmak istediğiniz Connection için bir parametre tanımlayın ve sonra o parametreyi o metodun içinde kullanın.

Thread konusunda da @Tuğrul HELVACI Beyin tavsiyelerini de göz ardı etmeyin.
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi