Sql'den çekilen veriyi veritabanına yazma

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Sql'den çekilen veriyi veritabanına yazma

Mesaj gönderen AliRiza »

Arkadaşlar şöyle bir işlem yapmak istiyorum.Bir tablo var ve bu tablodaki verilere göre sorgulama yaptırıyorum.Yaptığım sorgulamaya göre dbgridde liste alıyorum.Benim yapmak istediğim bu sorgulamalardan sonra kullanıcının istediği değişikliği grid üzerinde yapıp bunu veritabanına Kaydet deyip eklemesi.
Yani dbgriddeki veriyi veritabanına yazdırmamız gerekiyor.Kaydet dediğinde dbgrid'in datasource'ini değiştirmeyi denedim.Ama olmadı.

Kod: Tümünü seç

procedure TForm1.kaydetClick(Sender: TObject);
begin



dbgrid1.DataSource:=datasource1;
adotable1.Append;
end;
Başka ne yapabilirim.query'i taratıp başka bir dbgrid'denmi kayıt yaptırsam.

Kod: Tümünü seç

procedure TForm1.kaydetClick(Sender: TObject);
begin
i:=0;
while not adoquery1.eof do
begin
dbgrid3.items[i].items[0]:=adoquery1.field[0].asstring;
dbgrid3.items[i].items[1]:=adoquery1.field[1].asstring;
dbgrid3.items[i].items[2]:=adoquery1.field[2].asstring;
dbgrid3.items[i].items[3]:=adoquery1.field[3].asstring;
i:=i+1,
end;
adotable1.Append;
end;
Sizce ne yapabilirim..
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

öncelikle DBGrid üzerindeki kayıtlar Query den geliyorsa sql değiştiremezsin, ReadOnly dir.

Kod: Tümünü seç

procedure TForm1.kaydetClick(Sender: TObject); 
begin 
adoquery1.first;
while not adoquery1.eof do 
begin 
adotable1.insert;
adotable1.field[0].Value :=adoquery1.field[0].Value;
adotable1.field[1].Value :=adoquery1.field[1].Value;
adotable1.field[2].Value :=adoquery1.field[2].Value;
adotable1.field[3].Value :=adoquery1.field[3].Value;
adotable1.post;
adoquery1.next;
end; 
end; 
query deki kayıtları bu şekilde değiştirmeden tabloya kaydedebilirsin.
ama benim tavsiyen döngü ile uğraşmadan insert into komutu ile yap..
DeveloperToolKit

..::|YeşilMavi|::..
Cevapla