DBGrid1 de kayıt üstünde kalma

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

DBGrid1 de kayıt üstünde kalma

Mesaj gönderen ozcank »

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 ?
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: DBGrid1 de kayıt üstünde kalma

Mesaj gönderen yusuf simsek »

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...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: DBGrid1 de kayıt üstünde kalma

Mesaj gönderen ozcank »

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 ;

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;
evet close ... open.. aralığım var ama onları kaldırınca hata veriyor.
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: DBGrid1 de kayıt üstünde kalma

Mesaj gönderen yusuf simsek »

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 "
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: DBGrid1 de kayıt üstünde kalma

Mesaj gönderen ozcank »

Component kullanmıyorum :(
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: DBGrid1 de kayıt üstünde kalma

Mesaj gönderen yusuf simsek »

"ERehber" nesnesi veritabanı bağlantısı için kullanılan bir component ;)
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: DBGrid1 de kayıt üstünde kalma

Mesaj gönderen ikra »

islem yapmadan önce verinin ID'sini bir degiskene atayip daha sonra LOCATE yaparak ayni satira konumlanabilirsin.
kıdemsiz üye
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: DBGrid1 de kayıt üstünde kalma

Mesaj gönderen ozcank »

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;



Cevapla