dbgrid de toplu kayıt güncelleme...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

dbgrid de toplu kayıt güncelleme...

Mesaj gönderen Tropic »

Arkadaşlar,

sorguyla dbgride çekdiğim kayıtları dbgridde değiştirip, (elle yeni değer girip) bir butona basıldığında database deki kaynak verileri güncelleyecek kod örneği verebilirmisiniz?
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

DB nedir? Ne tarz bir işlem böyle bir yöntem yapmak istiyorsunuz, yani niye ihtiyaç duydunuz?

Memory table kullabilirsiniz. :ara kbmMemTable

Kolay gelsin.
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

Mesaj gönderen Tropic »

Hocam DB --> Access. Yapmak istediğim filtreleme sonucu gridin bir sütununa aldığım sayısal değerleri değiştirip güncelle butonuna basınca veritabanındaki kaynaktaki sayısal bilgileri değiştirmesi...
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

Mesaj gönderen Tropic »

Bu konuya örnek verebilecek arkadaş var mı?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Eğer select ile kayıtları direk çekiyorsanız (sum, avg gibi fonksiyonlar kullanmadan, guplama yapmadan veya alt sorgu kullanmadan) dbgrid üzerine yazılan değer direk tabloya da yazılacaktır. Ek bir çaba gerektirmez. Eğer böyle bir yapı kullanmıyorsan sorgunu burada belirt aksi halde yardım çabaları suya yazı yazmak gibi boşa giden çalışma olacaktır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

Mesaj gönderen Tropic »

sabanakman yazdı:Eğer select ile kayıtları direk çekiyorsanız (sum, avg gibi fonksiyonlar kullanmadan, guplama yapmadan veya alt sorgu kullanmadan) dbgrid üzerine yazılan değer direk tabloya da yazılacaktır. Ek bir çaba gerektirmez. Eğer böyle bir yapı kullanmıyorsan sorgunu burada belirt aksi halde yardım çabaları suya yazı yazmak gibi boşa giden çalışma olacaktır.
Hocam sorgu aşağıda;

Kod: Tümünü seç

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT STOCK_TRAN_HEADERS.USER_DOC_NUMBER, EQUIVALENT_CODES.SUBST_CODE, STOCK_CARDS.EXPLAIN, STOCK_TRAN_LINES.LINE_NUMBER, STOCK_TRAN_LINES.TRANSACTION_VALUE FROM STOCK_TRAN_HEADERS, EQUIVALENT_CODES, STOCK_CARDS, STOCK_TRAN_LINES');

ADOQuery1.SQL.Add('WHERE STOCK_CARDS.ID=EQUIVALENT_CODES.STOCK_ID AND STOCK_CARDS.ID=STOCK_TRAN_LINES.STOCK_ID AND STOCK_TRAN_HEADERS.ID=STOCK_TRAN_LINES.HEADER_ID AND STOCK_TRAN_LINES.TRANSACTION_TYPE=0 AND STOCK_TRAN_LINES.TRANSACTION_VALUE=0');

ADOQuery1.Open;

end;
Ben dbgride gelen transaction_value değerlerini değiştirip güncellemek istiyorum.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
anladığım kadarı ile bu kodlar ile kayıtları dbgridde gösterip değişiklikleri yapıyorsunuz.
istediğiniz bir butona tıklayınca bu değişiklikleri vt ye atması.

forma ikinci bir adoquery koyun. unun sql ine update için kullanacağınız query yi yazın.

Kod: Tümünü seç

adoquery1.first;
while not adoquery1.eof do
begin
  adoquery2 ye parametreleri atayın.
  adoquery2.execsql; //execsql yerine execquery veya kendi komutu ne ise onu kullanın.
  adoquery1.next;
end;
bu mantıkta bir döngü ile halledebilirsiniz kanaatindeyim.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Tropic
Üye
Mesajlar: 48
Kayıt: 12 Nis 2005 10:45

Mesaj gönderen Tropic »

aslangeri yazdı:s.a.
anladığım kadarı ile bu kodlar ile kayıtları dbgridde gösterip değişiklikleri yapıyorsunuz.
istediğiniz bir butona tıklayınca bu değişiklikleri vt ye atması.

forma ikinci bir adoquery koyun. unun sql ine update için kullanacağınız query yi yazın.

Kod: Tümünü seç

adoquery1.first;
while not adoquery1.eof do
begin
  adoquery2 ye parametreleri atayın.
  adoquery2.execsql; //execsql yerine execquery veya kendi komutu ne ise onu kullanın.
adoquery1.next;
end;
bu mantıkta bir döngü ile halledebilirsiniz kanaatindeyim.
kolay gelsin.

Kod: Tümünü seç

adoquery1.first;
while not adoquery1.eof do
begin
 adoquery2.sql.add('Update STOCK_TRAN_LINES Set TRANSACTION_VALUE=' dbgrid colums nasıl atıycam );
 adoquery2.execsql;
adoquery1.next;
end;
Hocam dbgrid deki columsu sorguda parametre olarak nasıl kullanıcam. Yukarıdaki yapı doğrumudur ayrıca...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

Tropic yazdı:dbgrid colums nasıl atıycam
dbgridden değil adoquery1 den alacaksın.

Kod: Tümünü seç

doquery2.sql.add('Update STOCK_TRAN_LINES Set TRANSACTION_VALUE='+
adoquery1transaction_value.asstring+'
' where XXXX='+adoquery1XXXXXX);
şeklinde.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla