DBGrid1 de kayıt üstünde kalma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
DBGrid1 de kayıt üstünde kalma
Arkadaşlar DBGrid1 deki data üzerinde cift tıklayarak kaydı seçiyorum ve düzeltme butonu ile düzeltiyorum ama kayıtların başına gidiyor seçmiş olduğum kaydın üzerinde kalmasını nasıl sağlarım ?
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
Re: DBGrid1 de kayıt üstünde kalma
Büyük ihtimalle çift tıkladığında Gridin bağlı olduğu Query nesnesini Close - Open yapıyorsun... onu kontrol et... Gridi Enable:=False yaparsan Gride dokunmaz... Kaydet butonunda da tekrardan Enable := True yaparsın...
Re: DBGrid1 de kayıt üstünde kalma
Yusuf simsek kardeşim dediğin gibi yaptım doğru kaydı dondurdu ama Düzelt butonuna basınca tekrar başa aldı düzelt button içeriği ;
evet close ... open.. aralığım var ama onları kaldırınca hata veriyor.
Kod: Tümünü seç
end
Else IF (Edit2.Text<>'0') Then
Begin
ERehber.Close;
ERehber.SQL.Clear;
ERehber.SQL.add('UPDATE TBLEMANET SET EACIK1='+QuotedStr(Edit10.text)+', ESTHAR_GCMIK='+quotedstr(Edit2.text)+', ECIK_TARIH='+quotedstr(edit7.text)+' where EFIS_NO='+QuotedStr(Edit1.text)+' AND ECARI_KOD='+QuotedStr(DBEdit1.text)+' AND KAYIT_ID='+#39+''+Trim(DBEdit8.Text)+''+#39+' AND ESTOK_KODU='+QuotedStr(Edit9.text+''));
ERehber.ExecSQL;
ERehber.EnableControls;
ERehber.SQL.clear;
ERehber.SQL.add('select * From TBLEMANET WHERE EFIS_NO='+#39+''+Edit1.text+''+#39+' order by ESTOK_KODU DESC');
ERehber.Open;
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
Re: DBGrid1 de kayıt üstünde kalma
ERehber Query yerine bir tane tmpQıery ekle ve UPDATE işlemini onun üzerinde yap 
Eğer Zeos kullanıyorsan ve ya kullandığın veritabanı bağlantı componentinde UpdateSQL nesnesi varsa UpdateSQL nesnesi kullan....
UpdateSQL nesnesini nasıl kullanacağına dair biraz araştırma yapmanı tavsiye ederim.
http://www.experts-exchange.com/Program ... 99653.html
"tzupdatesql component "

Eğer Zeos kullanıyorsan ve ya kullandığın veritabanı bağlantı componentinde UpdateSQL nesnesi varsa UpdateSQL nesnesi kullan....
UpdateSQL nesnesini nasıl kullanacağına dair biraz araştırma yapmanı tavsiye ederim.
http://www.experts-exchange.com/Program ... 99653.html
"tzupdatesql component "
Re: DBGrid1 de kayıt üstünde kalma
Component kullanmıyorum 

-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
Re: DBGrid1 de kayıt üstünde kalma
"ERehber" nesnesi veritabanı bağlantısı için kullanılan bir component 

Re: DBGrid1 de kayıt üstünde kalma
islem yapmadan önce verinin ID'sini bir degiskene atayip daha sonra LOCATE yaparak ayni satira konumlanabilirsin.
kıdemsiz üye
Re: DBGrid1 de kayıt üstünde kalma
Arkadaşlar Merhaba; Bu şekilde kayda konumlandım. Herkese çok teşekkür ediyorum.
Kod: Tümünü seç
ERehber.Close;
ERehber.SQL.Clear;
ERehber.SQL.add('UPDATE TBLEMANET SET EACIK1='+QuotedStr(Edit10.text)+', ESTHAR_GCMIK='+quotedstr(Edit2.text)+', ECIK_TARIH='+quotedstr(edit7.text)+' where EFIS_NO='+QuotedStr(Edit1.text)+' AND ECARI_KOD='+QuotedStr(DBEdit1.text)+' AND KAYIT_ID='+#39+''+Trim(DBEdit8.Text)+''+#39+' AND ESTOK_KODU='+QuotedStr(Edit9.text+''));
ERehber.ExecSQL;
ERehber.EnableControls;
ERehber.SQL.clear;
ERehber.SQL.add('select * From TBLEMANET WHERE EFIS_NO='+#39+''+Edit1.text+''+#39+' order by ESTOK_KODU DESC');
ERehber.Open;
ERehber.Locate('ESTOK_KODU',Edit9.Text,[]); ////////// burdaki işlem kaydı buluyor ve konumlanıyor.
Filitre.close;
Filitre.sql.clear;
Filitre.sql.add('SELECT ESTOK_KODU,ESTOK_ADI,');
Filitre.sql.add('SUM(CASE WHEN EGCTIP='+#39+'G'+#39+' then ESTHAR_GCMIK else 0 end) [EGTOP],');
Filitre.sql.add('SUM(CASE WHEN EGCTIP='+#39+'C'+#39+' then ESTHAR_GCMIK else 0 end) [ECTOP],');
Filitre.sql.add('SUM((CASE WHEN EGCTIP='+#39+'G'+#39+' then ESTHAR_GCMIK else 0 end)-(CASE WHEN EGCTIP='+#39+'C'+#39+' then ESTHAR_GCMIK else 0 end)) [EKTOP]');
Filitre.sql.add('FROM TBLEMANET where ECARI_KOD='+#39+''+DBEdit1.text+''+#39+'');
Filitre.sql.add('and ESTOK_KODU='+#39+''+DBEdit6.text+''+#39+'');
Filitre.sql.add('GROUP BY ESTOK_KODU,ESTOK_ADI');
Filitre.open;