| acelebi54 | 16.07.2005 - 10:50:38 |
| Merhaba Arkadaşlar
Benim Bir sorunum var çok uğraştım ama yapmadım. Forumda çok araştırdım ama böyle bir kod bulamadım. Sorunum şu…. FireBird 1.5 ve Delphi 7.0 kullanıyorum Bu arada Access den FireBird ‘e geçtim FIbPlus bileşenlerini kullanıyorum. Neyse Soruma geleyim. Personel adında bir tablom var Yapmak istediğim ise şu! Bu tabloya aynı tablo üzerinde olan bilgileri aktar dediğimde bilgileri bulunduğumuz ayın bir sonraki ay için aynı tabloya eklemesini istiyorum. While döngüsüyle yaptım ancak Ocak Ayındayken Şubat ayı için eklediğimde herhangi bir sorun olmadan ekliyor, ancak Şubat, mart ve diğer aylar için ekleme yaptığımda doğal olarak Kayıtları her ay için arttırarak gittiğinden aynı kayıttan Mart ayında ise her kayıtı 3 adet ekliyor. Bu eklemeyi nasıl önleyebilirim. Yada döngü yerine SQL ile yapılabilirmi SQL ile bu konuda bir örnek verebilirmisiniz Şimdiden teşekkür ederim. Herkese iyi çalışmalar dilerim. | |
| oguzozturk74 | 16.07.2005 - 13:59:34 |
| Nasıl bir kodlama yapıyorsunuz , detay verirseniz daha iyi olacak .
en basitinden bir tabloda ki kayıtları diğer bir tabloya atmak için : insert into Table1
select * form Table2 where ..... | |
| aslangeri | 17.07.2005 - 19:05:54 |
| s.a.
tam olarak nasıl bişey yaptığını anlatmamışsın ama şöyle birşey işini görebilirmi. tabloda kopyalamak istediğin kaydı seç. appendrecord ile kayıt ekle. tablo.appendrecord(tabloadialanladi.asvariant,tabloadialanadi.asvariant......); kolay gelsin. | |
| acelebi54 | 19.07.2005 - 14:23:18 |
| Merhaba aslangeri bey.
Daha önce sormuş olduğum sorumu tam anlatamadım galiba Birde yazmış olduğum başlığa tekrar nasıl soru soruluyor bilmediğim için buradan cevap olarak soruma devam ediyorum Önceki başlıktan da anlaşılacağı üzere Personel tablosundaki kayıtları (o anki tablodaki kayıtlar) her ay için Personel tablosuna eklemek istiyorum. Personel Tablosunda AY diye bir alanım var Personel tablosundaki kayıtları aşağıda yazmış olduğum kotlar ile tabloya eklerken AY alanına Şubat ayı yani 02 olarak kaydedecek Şubat ayında iken Mart ayı yani 03 olarak Şubat ayında kaç kayıt varsa onları ekleyecek. Yani kayıt sayısını kontrol edecek. Bir sonraki ay için ekleme yaptığımda bir önceki ay kayıtlarıyla aynı olması gerekiyor. Yazmış olduğum kot aşağıdadır. if Calendar1.Month=1 then begin PerAktar.Close; PerAktar.SQL.Clear; PerAktar.SQL.Add('SELECT * FROM PERSONEL'); PerAktar.SQL.Add('WHERE AY=1'); PerAktar.SQL.Add('ORDER BY ID_NO ASC'); PerAktar.Open; Personel.First; while not Personel.Eof do begin if PersonelAY.Value=2 then begin end else if PersonelAY.Value<>2 then begin PerAktar.Edit; PerAktar.Append; PerAktar.Edit; PerAktarID_NO.AsInteger:=PersonelID_NO.AsInteger; //ay1:=FormatDateTime('mm',DateTimePicker1.Date); PerAktarAY.AsInteger:=Calendar1.Month+1; PerAktarADISOYADI.AsString:=PersonelADISOYADI.AsString; PerAktarCALISIYORMU.AsBoolean:=PersonelCALISIYORMU.AsBoolean; PerAktarISEGIRISTARIHI.AsDateTime:=PersonelISEGIRISTARIHI.AsDateTime; PerAktarMAASI.AsCurrency:=PersonelMAASI.AsCurrency; Personel.Next; end; //while end end; end; //1 ayın sonu if Calendar1.Month=2 then begin PerAktar.Close; PerAktar.SQL.Clear; PerAktar.SQL.Add('SELECT * FROM PERSONEL'); PerAktar.SQL.Add('WHERE AY=2'); PerAktar.SQL.Add('ORDER BY ID_NO ASC'); PerAktar.Open; Personel.First; while not Personel.Eof do begin if PersonelAY.Value=3 then begin end else if PersonelAY.Value<>3 then begin PerAktar.Edit; PerAktar.Append; PerAktar.Edit; PerAktarID_NO.AsInteger:=PersonelID_NO.AsInteger; //ay1:=FormatDateTime('mm',DateTimePicker1.Date); PerAktarAY.AsInteger:=Calendar1.Month+1; PerAktarADISOYADI.AsString:=PersonelADISOYADI.AsString; PerAktarCALISIYORMU.AsBoolean:=PersonelCALISIYORMU.AsBoolean; PerAktarISEGIRISTARIHI.AsDateTime:=PersonelISEGIRISTARIHI.AsDateTime; PerAktarMAASI.AsCurrency:=PersonelMAASI.AsCurrency; Personel.Next; end; //while end end; end; /////2 ayın sonu if Calendar1.Month=3 then begin PerAktar.Close; PerAktar.SQL.Clear; PerAktar.SQL.Add('SELECT * FROM PERSONEL'); PerAktar.SQL.Add('WHERE AY=3'); PerAktar.SQL.Add('ORDER BY ID_NO ASC'); PerAktar.Open; Personel.First; while not Personel.Eof do begin if PersonelAY.Value=4 then begin end else if PersonelAY.Value<>4 then begin PerAktar.Edit; PerAktar.Append; PerAktar.Edit; PerAktarID_NO.AsInteger:=PersonelID_NO.AsInteger; //ay1:=FormatDateTime('mm',DateTimePicker1.Date); PerAktarAY.AsInteger:=Calendar1.Month+1; PerAktarADISOYADI.AsString:=PersonelADISOYADI.AsString; PerAktarCALISIYORMU.AsBoolean:=PersonelCALISIYORMU.AsBoolean; PerAktarISEGIRISTARIHI.AsDateTime:=PersonelISEGIRISTARIHI.AsDateTime; PerAktarMAASI.AsCurrency:=PersonelMAASI.AsCurrency; Personel.Next; end; //while end end; end; | |