İki DB de bir alanı birbirine Aktarma

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

İki DB de bir alanı birbirine Aktarma

Mesaj gönderen ozcank »

Arkadaşlar;
İki DB var ve bu DB lerde birinde SISEVADR ve SISEVTLF alanları var diğer DB de ise ROMUSADR ve ROMUSTLF alanı var ben bu alanları SISEVADR>ROMUSADR ye
SISEVTLF>ROMUSTLF ye aktarmak istiyorum şöyle yaptım ;

procedure TForm1.Button1Click(Sender: TObject);
begin
table1.first;
while not table1.eof do
begin
table2.Append;
table2SISEVADR.value:=table1ROMUSADR.value;
table2sSISEVTLF.value:=table1ROMUSTLF.value;
table1.next;
end;
table2.post;
end;

Fakat ROMUSKODU ve SISKODU birbirine nasıl eşitlerim yoksa adresler kayabilir karışabilir yardım ederseniz sevinirim.
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam diğer alanları aktardığın gibi ROMUSKODU'nı SISKODU'na aktar.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject); 
begin 
table1.first; 
while not table1.eof do 
begin 
table2.Append; 
table2SISKODU.value:=table1ROMUSKODU.value; 
table2SISEVADR.value:=table1ROMUSADR.value; 
table2sSISEVTLF.value:=table1ROMUSTLF.value; 
table2.post; 
table1.next; 
end; 
end; 

eğer bu şekilde olmazsa değişmesini istemediğin alanları tipi ne, ayrıca daha önceki numaraları mı vereceksin yoksa müşteri tablondaki id'ye göre mi vermek istiyorsun. Bunlarını belirtirseniz daha iyi olur...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Aslında konu şu ;
İlk giriş formu ve diğer bir form daha var ilk giriş formunda herşey giriliyor ve kaydediliyor sonra diğer forma geçildiğinde ilk giriş formundaki alanları koda göre bu diğer forma aktarıyorum kullanıcı tekrar girmemesi için ve kaydet diyince ikinci alana kaydoluyor.Fakat kullanıcı iş adresi değilde ev adresini ve telefonunu isteyince bu sefer alan ismini değiştirdim ama ikinci alanda iş adresleri kaldı ben şimdi bu kodla iş adrseleri yerine birindi formdaki ev adreslerini kaydedecem.Kodları eşitlemekteki amacım buydu yoksa adres telefon birbirine girer.
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

İki tabloda doğal olarak ortak alanınız vardır. İkinci tabloda birinci tablodaki bu alandaki bilgiye locate ile konumlan. Sonra eşitle.
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

O zaman hocam query ile yapacaksın olayın;

Kod: Tümünü seç

  query1.First;
 with query2 do
  begin
   close;
   sql.Clear;
   sql.add('UPDATE tabloadın SET SISKODU=:SISKODU,SISEVADR=:SISEVADR,SISEVTLF=:SISEVTLF  where id=:id');
   parambyname('id').AsInteger:=Query1id.AsCurrency
   parambyname('SISKODU').Value:= Query1SISKODU.Value;
   parambyname(SISEVADR').Value:= Query1SISEVADR.Value;
   parambyname('SISEVTLF').Value:= Query1SISEVTELF.Value;
   ExecSQL;
  end;
Query1.Next;
Bu tarz bir olayla aktarmak istediğin tablonun id'lerini birbirine eşitleyerek aktarabilirsin. Yani anynı tablonun id'lerini kontrol ettireceksin. Bu şekilde kaymak olmadan istediğin gibi aktarabilirsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

aynı tablo değil ama iki ayrı tablom var benim.

query1.First;
with query2 do
begin
close;
sql.Clear;
sql.add('UPDATE tabloadın SET SISKODU=:ROMUSKODU,SISEVADR=:ROMUSADR,SISEVTLF=:ROMUSTLF where id=:id');
parambyname('id').AsInteger:=Query1id.AsCurrency
parambyname('SISKODU').Value:= Query1ROMUSKODU.Value;
parambyname(SISEVADR').Value:= Query1ROMUSADR.Value;
parambyname('SISEVTLF').Value:= Query1ROMUSTLF.Value;
ExecSQL;
end;
Query1.Next;
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Tamam Query1 aktarmak istediğin alanlarının olduğu tablo Query2 aktarılmak istediğin alanların olduğu tablo sonuçta iki tablo işte ondan ona SQL kodu ile aktarabilirsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Cevapla