Başıma ağrılar girdi aramaktan...
Arkadaşlar özetle şunu yapmam lazım.
İki şubeden birini kapattık ve kapanan şube müşteri tablosundaki müşteri bilgilerini hazırdaki müşteri tabloma aktarmam lazım
1-
mus_no adı soyadı adres tel cep tel
1 aaa bbb ooo 11 533
2 bbb ccc ddd 22 533
3 ccc ııı ...........
2-
mus_no adı soyadı adres tel cep tel
1 aaa bbb ooo 11 533
2 bbb ccc ddd 22 533
yukarıda 2 nolu müşzeri tablosunu aktarırken MUS_NO +4+5 olarak devam edecek bir aktarım nasıl olmalı
MUS_NO olmamış olsa aktarımda sorun yok ama burada takıldım.
Tablodan tabloya veri aktarma
Re: Tablodan tabloya veri aktarma
s.a.
önce ikinci tablodaki mus_no alanını update et,(+10000 olabilir tablonuzdaki kayıt sayısına bağlı)
sorasını halledersin...
önce ikinci tablodaki mus_no alanını update et,(+10000 olabilir tablonuzdaki kayıt sayısına bağlı)
sorasını halledersin...
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Tablodan tabloya veri aktarma
var
d:Integer;
begin
d:=form1.musteri1.FieldValues['MUS_NO'];
ADOQ1.Open;
While Not musteri1.Eof do
musteri1.Last;
musteri1.insert;
musteriMUS_NO.AsInteger:= d+1;
musteri1.FieldByName('ADI').AsString:=ADOQ1.fieldbyname('ADI').AsString;
musteri1.FieldByName('SOYADI').AsString:=ADOQ1.fieldbyname('SOYADI').AsString;
musteri1.FieldByName('TELEFON').AsString:=ADOQ1.fieldbyname('TELEFON').AsString;
musteri1.FieldByName('ADR').AsString:=ADOQ1.fieldbyname('ADR').AsString;
musteri1.Post;
ADOQ1.Next;
Musteri2 tablosundan mus_no almadan sadece belirli alanları almaya çalışaşarak butona bu kodu yazdım ama, tüm kayıtları aktarmadı, sorun nerede olabilir...
d:Integer;
begin
d:=form1.musteri1.FieldValues['MUS_NO'];
ADOQ1.Open;
While Not musteri1.Eof do
musteri1.Last;
musteri1.insert;
musteriMUS_NO.AsInteger:= d+1;
musteri1.FieldByName('ADI').AsString:=ADOQ1.fieldbyname('ADI').AsString;
musteri1.FieldByName('SOYADI').AsString:=ADOQ1.fieldbyname('SOYADI').AsString;
musteri1.FieldByName('TELEFON').AsString:=ADOQ1.fieldbyname('TELEFON').AsString;
musteri1.FieldByName('ADR').AsString:=ADOQ1.fieldbyname('ADR').AsString;
musteri1.Post;
ADOQ1.Next;
Musteri2 tablosundan mus_no almadan sadece belirli alanları almaya çalışaşarak butona bu kodu yazdım ama, tüm kayıtları aktarmadı, sorun nerede olabilir...
Re: Tablodan tabloya veri aktarma
declare @M_NO decimal
select @M_NO=MAX(MUS_NO)+1 FROM MUSTERI1
INSERT INTO MUSTERI1 (MUS_NO,ADI, SOYADI)
SELECT @MUS_NO,ADI,SOYADI FROM MUSTERI2
bu kod ilede MUSTERI1 DEKİ SON KAYDI 1 ARTIRIP MUSTERİ2 DEKİ KAYITLARIN HEPSİNİ AKTARIYOR AMA AKTARILAN KAYITLARIN MUS_NO ları hepsine aynı numarayı veriyor
yani
MUSTERI1 DEKİ son MUS_NO 1000 ise aktarılan tüm kayıt numaralırına 1001 veriyo :S
select @M_NO=MAX(MUS_NO)+1 FROM MUSTERI1
INSERT INTO MUSTERI1 (MUS_NO,ADI, SOYADI)
SELECT @MUS_NO,ADI,SOYADI FROM MUSTERI2
bu kod ilede MUSTERI1 DEKİ SON KAYDI 1 ARTIRIP MUSTERİ2 DEKİ KAYITLARIN HEPSİNİ AKTARIYOR AMA AKTARILAN KAYITLARIN MUS_NO ları hepsine aynı numarayı veriyor
yani
MUSTERI1 DEKİ son MUS_NO 1000 ise aktarılan tüm kayıt numaralırına 1001 veriyo :S
Re: Tablodan tabloya veri aktarma
s.a.
Sorun aşağıdaki kodlarda hatayı giderince çözüldü,
Kendime ve aslangeriye teşekkürler.
Demekki sakin kafa ile uğraşmak gerekiyormuş, yukarıda başıma ağrılar girdi demiştim ya, evet ağrılı bir şekilde nerede hata yaptığımı bile göremez hale gelmişim, biraz hırs yaptım
Çoğu kişi için basit bir işlem ama, bizde öğrencez...
var
d:Integer;
begin
//d:=form1.musteri1.FieldValues['MUS_NO'];///// burada değil
ADOQ1.Open;
While Not ADOQ1.Eof do ///yukarıda (musteri1)
d:=form1.musteri1.FieldValues['MUS_NO']; //// burada olmalı
musteri1.Last;
musteri1.insert;
musteriMUS_NO.AsInteger:= d+1;
musteri1.FieldByName('ADI').AsString:=ADOQ1.fieldbyname('ADI').AsString;
musteri1.FieldByName('SOYADI').AsString:=ADOQ1.fieldbyname('SOYADI').AsString;
musteri1.FieldByName('TELEFON').AsString:=ADOQ1.fieldbyname('TELEFON').AsString;
musteri1.FieldByName('ADR').AsString:=ADOQ1.fieldbyname('ADR').AsString;
musteri1.Post;
ADOQ1.Next;
Sorun aşağıdaki kodlarda hatayı giderince çözüldü,
Kendime ve aslangeriye teşekkürler.
Demekki sakin kafa ile uğraşmak gerekiyormuş, yukarıda başıma ağrılar girdi demiştim ya, evet ağrılı bir şekilde nerede hata yaptığımı bile göremez hale gelmişim, biraz hırs yaptım

var
d:Integer;
begin
//d:=form1.musteri1.FieldValues['MUS_NO'];///// burada değil
ADOQ1.Open;
While Not ADOQ1.Eof do ///yukarıda (musteri1)
d:=form1.musteri1.FieldValues['MUS_NO']; //// burada olmalı
musteri1.Last;
musteri1.insert;
musteriMUS_NO.AsInteger:= d+1;
musteri1.FieldByName('ADI').AsString:=ADOQ1.fieldbyname('ADI').AsString;
musteri1.FieldByName('SOYADI').AsString:=ADOQ1.fieldbyname('SOYADI').AsString;
musteri1.FieldByName('TELEFON').AsString:=ADOQ1.fieldbyname('TELEFON').AsString;
musteri1.FieldByName('ADR').AsString:=ADOQ1.fieldbyname('ADR').AsString;
musteri1.Post;
ADOQ1.Next;
-
- Üye
- Mesajlar: 1
- Kayıt: 26 Eyl 2016 09:54
Re: Tablodan tabloya veri aktarma
Önce birinci tablodaki kayıt sayısını sorgula sonra ikinci tablodaki kayıt sayısını sorgula ve ilk tablonun kayıt sayısından ikinci tablonun kayıt sayısına kadar döngü oluştur, döngünün içerisinde ikinci tabloyu listelet, oradan gelen bilgileri birinci tabloya insert et ve ikinci tabloyu listelettiğin sorguda bir sonraki kayıda next yoluyla yeniden konumlan, böylece tüm kayıtları atmış olursun, sql kullanarak yapmanı öneririm..