SQL de Karşılaştırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

SQL de Karşılaştırma

Mesaj gönderen ozcank »

Arkadaşlar Merhaba;
Edit1.txt ile TBLFATUIRS deki CARI_KODU nu karşılaştırmak istiyorum ama hata veriyor.Yardımcı olurmusunuz?

ADOQuery kullanıyorum onunda karşılığı FRapor

Kod: Tümünü seç

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
       if Edit1.Text := :=FRapor.Fieldbyname('CARI_KODU').AsBoolean;
 then
       begin
          FRapor.SQL.add('SELECT FATIRS_NO,CARI_KODU,TARIH,TIPI,GENELTOPLAM FROM TBLFATUIRS WHERE TBLFATUIRS.CARI_KODU=Edit1.text');
       end;
end;

Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: SQL de Karşılaştırma

Mesaj gönderen Lost Soul »

1. Edit1.Text yazısını tırnağın dışına yazmanız gerekiyor
2. CARI_KOD string bir alan ise Edit1.Text'i quotedstr() ile kullanmanız gerekiyor

Kod: Tümünü seç

('..... CARI_KODU='+QuotedStr(Edit1.Text));
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Karşılaştırma

Mesaj gönderen ozcank »

if (FRapor.CARI_KODU:='+QuotedStr(Edit1.Text));
bu şekilde yazdım ama yine hata verdi.
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: SQL de Karşılaştırma

Mesaj gönderen White Rose »

if (FRapor.CARI_KODU:='+QuotedStr(Edit1.Text));
bu şekilde yazdım ama yine hata verdi.
yerine

if (FRapor.CARI_KODU.AsString=Edit1.Text) Then ...........
yazın.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Karşılaştırma

Mesaj gönderen ozcank »

bu şekilde button a yazdığım kod ama yine hata verdi.

Kod: Tümünü seç

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
    if (FRapor.CARI_KODU.AsString=Edit1.Text) then
       begin
          FRapor.SQL.add('SELECT FATIRS_NO,CARI_KODU,TARIH,TIPI,GENELTOPLAM FROM TBLFATUIRS WHERE TBLFATUIRS.CARI_KODU=Edit1.text');
       end;

end;


[Error] EMANETGIRIS.pas(62): Undeclared identifier: 'CARI_KODU'
[Fatal Error] EMNTMENU.dpr(7): Could not compile used unit 'EMANETGIRIS.pas'
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: SQL de Karşılaştırma

Mesaj gönderen Lost Soul »

Üzerinde çalıştığınızı kodun üzerinde çalışacak bişey yok kod yanlış mantık yanlış her şey yanlış. Verdiğim linklerdeki örneklere bakın. Forumda arama yapoın biraz bilgi toplayın. Şu an anlamadan motamot kodlama yapmya çalışıyorsunuz.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Karşılaştırma

Mesaj gönderen ozcank »

ADOQuery Kullanıyorum ve name FRapor
Sorgu bu kadar ;

Kod: Tümünü seç

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
FRapor.Close;
FRapor.SQL.Clear;
FRapor.SQL.add('SELECT FATIRS_NO,CARI_KODU,TARIH,TIPI,GENELTOPLAM FROM TBLFATUIRS WHERE CARI_KODU=Edit1.text');
FRapor.Close;
end;

bu şekildede çalışmıyor düzeltirsen sevinirim.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: SQL de Karşılaştırma

Mesaj gönderen Lost Soul »

Sorunun en başında söylemiştim

Kod: Tümünü seç

FRapor.SQL.add('SELECT FATIRS_NO,CARI_KODU,TARIH,TIPI,GENELTOPLAM FROM TBLFATUIRS WHERE CARI_KODU=Edit1.text');
değil
eğer cari kodu alanı string ise

Kod: Tümünü seç

FRapor.SQL.add('SELECT FATIRS_NO,CARI_KODU,TARIH,TIPI,GENELTOPLAM FROM TBLFATUIRS WHERE CARI_KODU='+ QuotedStr(Edit1.text));
integer ise

Kod: Tümünü seç

FRapor.SQL.add('SELECT FATIRS_NO,CARI_KODU,TARIH,TIPI,GENELTOPLAM FROM TBLFATUIRS WHERE CARI_KODU='+ Edit1.text);

yazmanız gerekiyor


veyahut

Kod: Tümünü seç

FRapor.SQL.add('SELECT FATIRS_NO,CARI_KODU,TARIH,TIPI,GENELTOPLAM FROM TBLFATUIRS WHERE CARI_KODU=:P_CARI');
FRapor.ParamByName('P_CARI').AsString = edit1.Text;
şeklinde parametre ile de kullanabilirsiniz.
kolay gelsin.
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: SQL de Karşılaştırma

Mesaj gönderen Lost Soul »

ayrıca en sondaki

FRapor.Close;

değil

FRapor.Open veya FRapor.ExecSQL olmalı.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Karşılaştırma

Mesaj gönderen ozcank »

Çok teşekkür ederim dediğiniz gibi oldu ve çalıştı.
bir başka sorum olacak şöyle;
2 tane DBGRID var form da 1. DBGRID de faturalar 2. DBGRID ekranada bu faturaların detaylarını yazdırmak istiyorum ve bu sorgu çalışmadı.
Birinci DBGRID e ilgili faturanın üzerine çift tıklayınca ikinci DBGRID e detaylarını yazdıracam.Yardımcı olurmusunuz?

Kod: Tümünü seç

procedure TForm2.DBGrid1DblClick(Sender: TObject);
begin
SRapor.Close;
SRapor.SQL.Clear;
SRapor.SQL.Add('SELECT STOK_KODU,FISNO,STHAR_GCMIK,STHAR_TARIH,STHAR_CARIKOD FROM TBLFATUIRS,TBLSTHAR WHERE FRapor.FTIRSIP=1 AND FRapor.CARI_KODU=STHAR_CARIKOD);
SRapor.Open;
end;
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: SQL de Karşılaştırma

Mesaj gönderen unicorn64 »

sorgu çalışmadı size çok şey ifade ediyor olabilir ama mesajınızı okuyanlar için hiçbir şey ifade etmeyecektir.
mesajınızı okuyanlar program hata mı verdi, sorgu çalışırken hata mı aldınız, sorgu çalıştı da beklediğiniz sonucu mu göremediniz, hata aldıysanız hata mesajı nedir.... siz söylemeden bilemezler...

öncelikle delphide kodlama nasıl yapılır, veritabanı işlemleri nasıl yapılır,sorgulamalar nasıl yapılır ve delphide veritabanı işlemleri konularına bir göz atmanızı tavsiye ederim.

FRapor anladığım kadarıyla formdaki başka bir query nesnesi ama direk sql içinde kullanmışsınız...
tablo ve alan isimlerine bakınca netsis üzerinde işlem yapmaya çalışıyorsunuz ve hatırladığım kadarıyla

Kod: Tümünü seç

SRapor.SQL.Add('SELECT STOK_KODU,FISNO,STHAR_GCMIK,STHAR_TARIH,STHAR_CARIKOD FROM TBLFATUIRS ');
SRapor.SQL.Add('INNER JOIN TBLSTHAR ON TBLFATUIRS.CARI_KODU=TBLSTHAR.STHAR_CARIKOD AND TBLFATUIRS.FATIRSNO=TBLSTHAR.FATIRSNO ');
SRapor.SQL.Add('WHERE TBLFATUIRS.FTIRSIP=1   AND TBLSTHAR.FATIRSNO='+quotedstr(FRapor.FATIRSNO)+'');
gibi bişey olmalı
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Karşılaştırma

Mesaj gönderen ozcank »

Yardımlarınız için çok teşekkür ederim sorguyu çalıştırdım fakat FISNO ları birtürlü süzdüremedim nerde hata yapıyorum bir bakabilirmisiniz?

Kod: Tümünü seç

SRapor.Close;
SRapor.SQL.Clear;
SRapor.SQL.Add('SELECT STOK_KODU,FISNO,STHAR_GCMIK,STHAR_TARIH,STHAR_CARIKOD FROM TBLFATUIRS');
SRapor.SQL.Add('INNER JOIN TBLSTHAR ON TBLFATUIRS.CARI_KODU=TBLSTHAR.STHAR_CARIKOD AND TBLFATUIRS.FATIRS_NO=TBLSTHAR.FISNO ');
SRapor.SQL.Add('WHERE TBLFATUIRS.FTIRSIP=1 AND TBLFATUIRS.FATIRS_NO=TBLSTHAR.FISNO AND TBLSTHAR.STHAR_CARIKOD='+QuotedStr(Edit1.Text)+'');
SRapor.Open;
end;

ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de Karşılaştırma

Mesaj gönderen ozcank »

Arkadaşlar filtreleme ile beraber TBLSTSABIT deki STOK_ADI nıda yazdırmak istiyorum birşeyler yaptım ama olmadı sorguya bir göz atabilirmisiniz?

SRapor.Close;
SRapor.SQL.Clear;
SRapor.SQL.Add('SELECT TBLSTHAR.STOK_KODU,TBLSTSABIT.STOK_ADI,TBLSTHAR.FISNO,TBLSTHAR.STHAR_GCMIK,TBLSTHAR.STHAR_TARIH,TBLSTHAR.STHAR_CARIKOD FROM TBLFATUIRS AS TBLSTSABIT');
SRapor.SQL.Add('INNER JOIN TBLSTHAR AS TBLSTHAR ON TBLFATUIRS.CARI_KODU=TBLSTHAR.STHAR_CARIKOD AND TBLFATUIRS.FATIRS_NO=TBLSTHAR.FISNO ');
SRapor.SQL.Add('WHERE TBLFATUIRS.FTIRSIP=1 AND TBLFATUIRS.FATIRS_NO=TBLSTHAR.FISNO AND TBLSTHAR.STHAR_CARIKOD='+QuotedStr(Edit1.Text)+'');
SRapor.Open;
end;
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: SQL de Karşılaştırma

Mesaj gönderen unicorn64 »

TBLSTSABIT bambaşka bir tablo... TBLFATUIRS AS TBLSTSABIT diyerek olmaz ki... öncelikle sql öğrenmeniz lazım....
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Cevapla