Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ] Query ismini değişken olarak göndermek
#1
Merhaba, kendime aşağıdaki gibi bir Fonksiyon oluşturdum.  Fakat şu kısmı ne yaptıysam beceremedim. " With FDATA_M.QSTOK_KARTLARI"
kısmınıdaki QSTOK_KARTLARI adındaki table adını , fonksiyona değişken olarak vermek istiyorum. 
Şöyle denedim olmadı   With FDATA_M.Table do begin  Nasıl yapabilirim.

Function BENZER_KAYIT_VARMI( Aranacak_Alan, Aranacak_Table, Aranan:String): BOOLEAN;
Var
Durum:Boolean;
BEGIN
 Durum:=true;
 if Aranan<>'' then begin
    with FDATA_M.QSTOK_KARTLARI do begin
         SQL.Clear;
         SQL.Add('Select * FROM '+Aranacak_Table+' WHERE '+Aranacak_Alan+' = '+Aranan);
         Open;
    end;
    if FDATA_M.QSTOK_KARTLARI.FieldByName(Aranacak_Alan).AsString=Aranan then Durum:=True else Durum:=False;
    Result:=Durum;
 end else Result:=Durum;
END;
Cevapla
#2
Merhaba,
Aranacak_Alan string ise
+Aranan kısmını +quotedstr(Aranan) değiştir
Cevapla
#3
(10-10-2018, Saat: 22:10)Lord_Ares Adlı Kullanıcıdan Alıntı: Merhaba, kendime aşağıdaki gibi bir Fonksiyon oluşturdum.  Fakat şu kısmı ne yaptıysam beceremedim. " With FDATA_M.QSTOK_KARTLARI"
kısmınıdaki QSTOK_KARTLARI adındaki table adını , fonksiyona değişken olarak vermek istiyorum. 
Şöyle denedim olmadı   With FDATA_M.Table do begin  Nasıl yapabilirim.

Function BENZER_KAYIT_VARMI( Aranacak_Alan, Aranacak_Table, Aranan:String): BOOLEAN;
Var
Durum:Boolean;
BEGIN
 Durum:=true;
 if Aranan<>'' then begin
    with FDATA_M.QSTOK_KARTLARI do begin
         SQL.Clear;
         SQL.Add('Select * FROM '+Aranacak_Table+' WHERE '+Aranacak_Alan+' = '+Aranan);
         Open;
    end;
    if FDATA_M.QSTOK_KARTLARI.FieldByName(Aranacak_Alan).AsString=Aranan then Durum:=True else Durum:=False;
    Result:=Durum;
 end else Result:=Durum;
END;

Function BENZER_KAYIT_VARMI(mydataset:tdataset; Aranacak_Alan, Aranacak_Table, Aranan:String): BOOLEAN;
Var
Durum:Boolean;
BEGIN
Durum:=true;
if Aranan<>'' then begin
   with mydataset do begin
        SQL.Clear;
        SQL.Add('Select * FROM '+Aranacak_Table+' WHERE '+Aranacak_Alan+' = '+Aranan);
        Open;
   end;
   if mydataset.FieldByName(Aranacak_Alan).AsString=Aranan then Durum:=True else Durum:=False;
   Result:=Durum;
end else Result:=Durum;
END;
ben bunu anladım

“Do. Or do not. There is no try.”
Cevapla
#4
Yapmak istediğin şöyle bir şey ise belki işini görebilir.
http://www.delphican.com/class-helper-da...lanma.html
WWW
Cevapla
#5
[quote pid='20892' dateline='1539199545']
Function BENZER_KAYIT_VARMI(mydataset:tdataset; Aranacak_Alan, Aranacak_Table, Aranan:String): BOOLEAN;
Var
Durum:Boolean;
BEGIN
Durum:=true;
if Aranan<>'' then begin
   with mydataset do begin
        SQL.Clear;
        SQL.Add('Select * FROM '+Aranacak_Table+' WHERE '+Aranacak_Alan+' = '+Aranan);
        Open;
   end;
   if mydataset.FieldByName(Aranacak_Alan).AsString=Aranan then Durum:=True else Durum:=False;
   Result:=Durum;
end else Result:=Durum;
END;
ben bunu anladım
[/quote]

[b]masteryoda[/b] ,Üstadım bu şekilde oldu fakat wth mydataset do kısmında SQL.CLEAR kısımlarında hata veriyor.
Cevapla
#6
(10-10-2018, Saat: 22:26)Lord_Ares Adlı Kullanıcıdan Alıntı: [quote pid='20892' dateline='1539199545']



Function BENZER_KAYIT_VARMI(mydataset:tdataset; Aranacak_Alan, Aranacak_Table, Aranan:String): BOOLEAN;
Var
Durum:Boolean;
BEGIN
Durum:=true;
if Aranan<>'' then begin
   with mydataset do begin
        SQL.Clear;
        SQL.Add('Select * FROM '+Aranacak_Table+' WHERE '+Aranacak_Alan+' = '+Aranan);
        Open;
   end;
   if mydataset.FieldByName(Aranacak_Alan).AsString=Aranan then Durum:=True else Durum:=False;
   Result:=Durum;
end else Result:=Durum;
END;
ben bunu anladım

Üstadım bu şekilde oldu fakat wth mydataset do kısmında SQL.CLEAR kısımlarında hata veriyor.
[/quote]

Argüman olarak geçtiğiniz nesne Tdataset ten farklı olabilirmi Tibquery Tuniquery v.s

“Do. Or do not. There is no try.”
Cevapla
#7
Evet. Firedac bileşenlerinden TFDQUERY , kullanıyorum. table:TFDQuery; denedim olmadı.
Cevapla
#8
(10-10-2018, Saat: 22:39)Lord_Ares Adlı Kullanıcıdan Alıntı: Evet. Firedac bileşenlerinden TFDQUERY , kullanıyorum. table:TFDQuery; denedim olmadı.

unitin interface bloğundaki uses da nesnenin implemente edildiği unit eklimi uses firedac gibi

Function BENZER_KAYIT_VARMI(mydataset:tdataset; Aranacak_Alan, Aranacak_Table, Aranan:String): BOOLEAN;
interface de belirtiniz mi burayı
aldığınız hata nedir

“Do. Or do not. There is no try.”
Cevapla
#9
Cix düzeltiyorum olmamış Big Grin Datamodul sayfasına değişken olarak mydataset:TFDQuery; tanımladım ama fonksiyona çağıramadım.
Cevapla
#10
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Buttons, DB, IBDatabase, IBCustomDataSet, IBQuery;

type
 TForm1 = class(TForm)
   IBDatabase1: TIBDatabase;
   BitBtn1: TBitBtn;
   IBQuery1: TIBQuery;
 private
   { Private declarations }
 public
   { Public declarations }
   function BenzerKayitVarmi(const pDatabase: TIBDatabase;
                             const pAranacak_Table,
                             pAranacak_Alan,
                             pAranan: String): String;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}



function TForm1.BenzerKayitVarmi(const pDatabase: TIBDatabase;
                                const pAranacak_Table,
                                      pAranacak_Alan,
                                      pAranan: String): String;



var
 Selsql : string;
 MyQuery  :TIBQuery;
begin

 Selsql:= 'SELECT * FROM _MYTABLE WHERE _ARANACAKALAN=:ARANANDEGER ';
 Selsql:=AnsiReplaceStr(Selsql,'_MYTABLE',pAranacak_Table);
 Selsql:=AnsiReplaceStr(Selsql,'_ARANACAKALAN',pAranacak_Alan);

MyQuery := TIBQuery.Create(nil);
try
 MyQuery.Database := pDatabase;
 MyQuery.SQL.Text := SELSQL;
 MyQuery.ParamByName('ARANANDEGER').AsString := pAranan;
 MyQuery.Open;

 Result := MyQuery.FieldByName('FIELDADI').AsString;

finally
 MyQuery.Free;
end;



end;

end.

“Do. Or do not. There is no try.”
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 181 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.253 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 452 02-02-2024, Saat: 09:54
Son Yorum: shooterman
  COZULDU veritabani prg yerine ne kullanabilirim. sadikacar60 8 694 29-01-2024, Saat: 18:41
Son Yorum: sadikacar60
  DbGrid'de Seçili Satırların Fast Reportta Raporlanması [ÇÖZÜLDÜ] bünyamin68 4 637 17-12-2023, Saat: 15:08
Son Yorum: bünyamin68



Konuyu Okuyanlar: 1 Ziyaretçi