Table'dan Table'a veri taşımak.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Table'dan Table'a veri taşımak.
Herkese selamlar;
Delphi 7 de personel program yapıyorum. Aktif adında table var. Bu table in içinde çalışan personeller kayıtlı. işten çıkarılan personeli ise cikis isimli table'ye kaydetmek istiyorum. Aktifdeki tableden kayıt silinecek Cikis isimli table'a gelecek.
konuyla ilgili yardımcı olurmusunuz?
Delphi 7 de personel program yapıyorum. Aktif adında table var. Bu table in içinde çalışan personeller kayıtlı. işten çıkarılan personeli ise cikis isimli table'ye kaydetmek istiyorum. Aktifdeki tableden kayıt silinecek Cikis isimli table'a gelecek.
konuyla ilgili yardımcı olurmusunuz?
Re: Table'dan Table'a veri taşımak.
Sanırım Butona dayalı işlem yapıyorsun? Yani Butona tıkladıgında bir tabledeki bilgiyi silecek diğerine aktaracak? Eger Sorun buysa örnek bir kod yazayım..
Table1 ve table2 adında tablen ve form1 form2 formların oldugunu varsaydım..
Ado baglantısına göre örnek kod söyle olabilir..
not: unit1 in usesine unit2 yi eklemeyi unutma.
Table1 ve table2 adında tablen ve form1 form2 formların oldugunu varsaydım..
Ado baglantısına göre örnek kod söyle olabilir..
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.adotable2.insert;
form2.adotable2cikanpersonel.value:=adotable1aktifpersonel.text;
adotable1aktifpersonel.delete;
form2.adotable2.post;
Re: Table'dan Table'a veri taşımak.
Eğer tablolar bire bir aynı ise bunu SQL kullanarak yapabilirsin. Hem daha hızlı çalışır hemde fazla kod yazmaya gerek kalmaz.
Kod: Tümünü seç
insert into eski (select * from aktif where id=000);
delete from aktif where id=000;
Re: Table'dan Table'a veri taşımak.
arkadaşlar sağolun cevaplar için. hemen deniyorum. sonucuda buraya yazarım.
Re: Table'dan Table'a veri taşımak.
Hocam uğraştım ama tam yapamadım.mkysoft yazdı:Eğer tablolar bire bir aynı ise bunu SQL kullanarak yapabilirsin. Hem daha hızlı çalışır hemde fazla kod yazmaya gerek kalmaz.Kod: Tümünü seç
insert into eski (select * from aktif where id=000); delete from aktif where id=000;
adoconnection
adoquery
dbgrid var formumda.
Personeli çıkar butonuna bastığımda kişi aktif tablosundan silinip cikis tablosuna kayıt edilecek. bunu yapmaktaki amacım şu. Çıkan personelin kaydını ayrı biryerde tutmak. Gridde bu kişilerin (işten çıkan) görüntülenmesini istemiyorum. Onları ayrı bir yerde göstermek istiyorum. Biraz detaylı yardımcı olursanız sevinirim. Şimdiden Teşekkür ediyorum. Kolay Gelsin.
Re: Table'dan Table'a veri taşımak.
adotable2cikanpersonel Aynı formda (1 tane form var) kullanıyorum. iki adet Adotable getirdim. Bağlantılarını yaptım ado ile.beyuslu yazdı:Sanırım Butona dayalı işlem yapıyorsun? Yani Butona tıkladıgında bir tabledeki bilgiyi silecek diğerine aktaracak? Eger Sorun buysa örnek bir kod yazayım..
Table1 ve table2 adında tablen ve form1 form2 formların oldugunu varsaydım..
Ado baglantısına göre örnek kod söyle olabilir..
not: unit1 in usesine unit2 yi eklemeyi unutma.Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject); begin form2.adotable2.insert; form2.adotable2cikanpersonel.value:=adotable1aktifpersonel.text; adotable1aktifpersonel.delete; form2.adotable2.post;
adotable2cikanpersonel burada hata veriyor.Ben onu adotable2cikis yaptım. Biraz daha detaylı yadımcı olabilirmisiniz.?
Teşekkür ederim yardımlarınız için.
-
- Üye
- Mesajlar: 69
- Kayıt: 02 Oca 2009 09:03
Re: Table'dan Table'a veri taşımak.
ben olsam çıkanları farklı bir database kopyalamayıp aynı database tutar her personel için durum fieldi oluşturur ve çıkanları ve halen çalışnları bu fielddaki değere göre filtreleme yapardım.çünkü her an bu personellerin hepsinin aynı bir database görüntülenmesi gerekebilir diye düşünürdüm.birde sql ile de yapabilirsin ama tek bir kayıdı sen kendi tıklaman ile yapacağın için burda hız pekde önemli değil.
önce kopyalarsın
sonra önceki tableyi silersin.
ama senin istediğini şunlar görebilir.
ado table kullanmadım ama normal table ile
sql ilede ordaki kod bana da yanlış gibi geldi ama kodları ezbere bilemediğim için sana şablonunu söyleyeceğim
önce kopyalarsın
sonra önceki tableyi silersin.
ama senin istediğini şunlar görebilir.
ado table kullanmadım ama normal table ile
Kod: Tümünü seç
cikis.append
cikiskod.value:=aktifkod.value;
cikisadi.valua:=aktifadi.value;
.....
..
cikis.flushbuffer;
aktif.delete;
Kod: Tümünü seç
insert into cikis(burada değerler)
form aktif (değerler) where burada hangi personel ise
delete from aktif where hangi personel ise
Re: Table'dan Table'a veri taşımak.
bu gibi durumlarda çıkış tarihini neden tabloda tutmuyorsunuz.
İleride illaki lazım olacaktır.
Listelemede de çıkış tarihiile aktifleri gösterirsiniz.
İleride illaki lazım olacaktır.
Listelemede de çıkış tarihi
Kod: Tümünü seç
is null
Bir kelimenin anlamını öğretsen bile yeter..



Re: Table'dan Table'a veri taşımak.
çıkış tarihi kaydı var veri tabanında. söylediğin çok mantıklı. ama nasıl yapacağımı tam olarak bilmiyorum. biraz detaylı anlatabilirmisin.conari yazdı:bu gibi durumlarda çıkış tarihini neden tabloda tutmuyorsunuz.
İleride illaki lazım olacaktır.
Listelemede de çıkış tarihiile aktifleri gösterirsiniz.Kod: Tümünü seç
is null
Re: Table'dan Table'a veri taşımak.
Demek istediğim Aktif ve Çıkış tek tablo olur.
Burada
İle çıkışı olmayanlar gelir.
İle çıkışı olanlar gelir.
ileride şu tarihten sonra giren ve şu tarihe kadar çıkanlar dediğinde bu bilginin yanyana olması daha iyi olur.
Kod: Tümünü seç
PERSONELGIRCIK gibi
ID,GIRTAR,CIKTAR
1 - 01.01.2009-31.12.2009
2 - 02.02.2009-NULL
Kod: Tümünü seç
select * from PERSONELGIRCIK where CIKTAR IS NULL
Kod: Tümünü seç
select * from PERSONELGIRCIK where CIKTAR IS NOT NULL
ileride şu tarihten sonra giren ve şu tarihe kadar çıkanlar dediğinde bu bilginin yanyana olması daha iyi olur.
Bir kelimenin anlamını öğretsen bile yeter..



Re: Table'dan Table'a veri taşımak.
Bu şekilde yaptım, işimi gördü. Çok Teşekkür ederim.conari yazdı:Demek istediğim Aktif ve Çıkış tek tablo olur.
BuradaKod: Tümünü seç
PERSONELGIRCIK gibi ID,GIRTAR,CIKTAR 1 - 01.01.2009-31.12.2009 2 - 02.02.2009-NULL
İle çıkışı olmayanlar gelir.Kod: Tümünü seç
select * from PERSONELGIRCIK where CIKTAR IS NULL
İle çıkışı olanlar gelir.Kod: Tümünü seç
select * from PERSONELGIRCIK where CIKTAR IS NOT NULL
ileride şu tarihten sonra giren ve şu tarihe kadar çıkanlar dediğinde bu bilginin yanyana olması daha iyi olur.
(Yardımcı olan tüm arkadaşlara canı gönülden teşekkür ederim.)