GROUP BY Kullanımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
tayipk
Üye
Mesajlar: 284
Kayıt: 27 Kas 2013 11:32

Re: GROUP BY Kullanımı

Mesaj gönderen tayipk »

ammy den bağlantı yollarsan bakalım be3raber
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: GROUP BY Kullanımı

Mesaj gönderen ozcank »

Arkadaşlar; "List İndex out of bounds (2)" hatası alıyorum ;

Bu şekilde olduğu için , bu sorgu tekrar eden stokları teke indiriyor;

Kod: Tümünü seç

ESRehber.Close;
ESRehber.SQL.Clear;
ESRehber.SQL.Add('SELECT ESTOK_KODU,ESTOK_ADI FROM TBLEMANET WHERE EGCTIP='+#39+'G'+#39+' AND ECARI_KOD='+QuotedStr(Form3.DBEdit1.text));
ESRehber.SQL.Add('GROUP BY ESTOK_KODU,ESTOK_ADI');
ESRehber.Open;
ESRehber.Active:=True;
Bu şekilde kullanırsam sorun yok ama bur da tekrar eden stokları teke indiremiyorum bu iki sorguyu aktif nasıl kullanabilirim ?

Kod: Tümünü seç

ESRehber.Close;
ESRehber.SQL.Clear;
ESRehber.SQL.Add('SELECT ESTOK_KODU, ESTOK_ADI, ESTHAR_TARIH, EFISNO,EFIS_NO, EGCTIP, EOLCU_BR1, EBARKOD1 ');
ESRehber.SQL.Add('FROM TBLEMANET ');
ESRehber.SQL.Add('WHERE EGCTIP='+#39+'G'+#39+' AND ECARI_KOD='+QuotedStr(Form3.DBEdit1.text));
ESRehber.Open;
ESRehber.Active:=True;
alanları DBGrid1 e aktarıyorum ve çift tıklayınca edit alanlarına yazdırıyorum o alanlar da ;

Kod: Tümünü seç

Form3.DBEdit5.Text  :=ESRehber.fields[2].asstring;
Form3.DBEdit3.Text  :=ESRehber.fields[3].asstring;
Form3.DBEdit6.Text  :=ESRehber.fields[0].asstring;
Form3.DBEdit7.Text  :=ESRehber.fields[1].asstring;
Form3.DBEdit9.Text  :=ESRehber.fields[6].asstring;
Form3.DBEdit10.Text :=ESRehber.fields[7].asstring;
Form3.Edit9.Text    :=ESRehber.fields[0].asstring;
Bana yardımcı olabilecek misiniz?
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: GROUP BY Kullanımı

Mesaj gönderen ozcank »

Arkadaşlar; Şöyle bir çözüm buldum ama eşitleyemedim yine nasıl eşitleyebilirim ?
Edit9.text OnExit olayına seçilen stok kodunu getiriyorum tab tuşuna basınca DBEdit' leri eşitlemek istiyorum.

Kod: Tümünü seç


procedure TForm3.Edit9Exit(Sender: TObject);
begin
IF Edit9.Text=Locate(ERehber.fields[0].asstring) Then
Begin
Form3.DBEdit5.Text  :=ERehber.fields[2].asstring;
Form3.DBEdit3.Text  :=ERehber.fields[3].asstring;
Form3.DBEdit6.Text  :=ERehber.fields[0].asstring;
Form3.DBEdit7.Text  :=ERehber.fields[1].asstring;
Form3.DBEdit9.Text  :=ERehber.fields[6].asstring;
Form3.DBEdit10.Text :=ERehber.fields[7].asstring;
end
Else
ShowMessage('Farklı');
ShowMessage(Edit9.Text);
ShowMessage(ERehber.fields[0].asstring);
end;



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

Re: GROUP BY Kullanımı

Mesaj gönderen ozcank »

"incompatible types 'variant' and 'set' " hatayı neden verir ?

Kod: Tümünü seç

procedure TForm3.Edit9Exit(Sender: TObject);
begin
IF ERehber.Locate('ESTOK_KODU',[loCaseInsensitive]) Then
Begin
Form3.DBEdit5.Text  :=ERehber.fields[2].asstring;
Form3.DBEdit3.Text  :=ERehber.fields[3].asstring;
Form3.DBEdit6.Text  :=ERehber.fields[0].asstring;
Form3.DBEdit7.Text  :=ERehber.fields[1].asstring;
Form3.DBEdit9.Text  :=ERehber.fields[6].asstring;
Form3.DBEdit10.Text :=ERehber.fields[7].asstring;
end
Else
ShowMessage('Farklı');
ShowMessage(Edit9.Text);
ShowMessage(ERehber.fields[0].asstring);
end;
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: GROUP BY Kullanımı

Mesaj gönderen ozcank »

burda iki alanı eşitlemek istedim hata veriyor iki alan eşitse DBEdit alanlarını yazdıracam birtürlü eşitleyemedim

Kod: Tümünü seç

procedure TForm3.Edit9Exit(Sender: TObject);
begin
IF Edit9.Text=ERehber.Locate('ESTOK_KODU',[loCaseInsensitive]) Then
Begin
Form3.DBEdit5.Text  :=ERehber.fields[2].asstring;
Form3.DBEdit3.Text  :=ERehber.fields[3].asstring;
Form3.DBEdit6.Text  :=ERehber.fields[0].asstring;
Form3.DBEdit7.Text  :=ERehber.fields[1].asstring;
Form3.DBEdit9.Text  :=ERehber.fields[6].asstring;
Form3.DBEdit10.Text :=ERehber.fields[7].asstring;
end
Else
ShowMessage('Farklı');
ShowMessage(Edit9.Text);
ShowMessage(ERehber.fields[0].asstring);
end;
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: GROUP BY Kullanımı

Mesaj gönderen ozcank »

Arkadaşlar en son buraya kadar getirdim ve hata vermiyor ama kaydı da bulmuyor

Kod: Tümünü seç

procedure TForm3.Edit9Exit(Sender: TObject);
Var
STOKBUL:AnsiString;
STBUL:Boolean;
begin
STBUL:=ERehber.Locate('ESTOK_KODU',STOKBUL,[]);
IF Edit9.Text=STOKBUL Then
Begin
Form3.DBEdit5.Text  :=ERehber.fields[2].asstring;
Form3.DBEdit3.Text  :=ERehber.fields[3].asstring;
Form3.DBEdit6.Text  :=ERehber.fields[0].asstring;
Form3.DBEdit7.Text  :=ERehber.fields[1].asstring;
Form3.DBEdit9.Text  :=ERehber.fields[6].asstring;
Form3.DBEdit10.Text :=ERehber.fields[7].asstring;
end
Else
ShowMessage('Farklı');
ShowMessage(Edit9.Text);
ShowMessage(STOKBUL);
end;
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: GROUP BY Kullanımı

Mesaj gönderen ozcank »

Bu şekilde çözüme kavuşturdum. İlgilenen tüm arkadaşlarıma çok teşekkür ediyorum.

Kod: Tümünü seç

procedure TForm3.Edit9Exit(Sender: TObject);
Var
SKODBUL:AnsiString;
begin
ESAktar.Active:=True;
SKODBUL:=Edit9.Text;
IF ESAktar.Locate('ESTOK_KODU',SKODBUL,[]) Then
Begin
Form3.DBEdit5.Text  :=ESAktar.FieldByName('ESTHAR_TARIH').AsString;
Form3.DBEdit3.Text  :=ESAktar.FieldByName('EFISNO').AsString;
Form3.DBEdit6.Text  :=ESAktar.FieldByName('ESTOK_KODU').AsString;
Form3.DBEdit7.Text  :=ESAktar.FieldByName('ESTOK_ADI').AsString;
Form3.DBEdit9.Text  :=ESAktar.FieldByName('EOLCU_BR1').AsString;
Form3.DBEdit10.Text :=ESAktar.FieldByName('EBARKOD1').AsString;
end;
end;
end.
Cevapla