Table'dan Table'a veri taşımak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
manaz
Üye
Mesajlar: 23
Kayıt: 02 May 2009 06:25
Konum: Denizli-Kale

Table'dan Table'a veri taşımak.

Mesaj gönderen manaz »

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?
beyuslu
Üye
Mesajlar: 46
Kayıt: 20 Nis 2009 11:08

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen beyuslu »

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..

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.adotable2.insert;
form2.adotable2cikanpersonel.value:=adotable1aktifpersonel.text;
adotable1aktifpersonel.delete;
form2.adotable2.post;


not: unit1 in usesine unit2 yi eklemeyi unutma.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen mkysoft »

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;
Kullanıcı avatarı
manaz
Üye
Mesajlar: 23
Kayıt: 02 May 2009 06:25
Konum: Denizli-Kale

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen manaz »

arkadaşlar sağolun cevaplar için. hemen deniyorum. sonucuda buraya yazarım.
Kullanıcı avatarı
manaz
Üye
Mesajlar: 23
Kayıt: 02 May 2009 06:25
Konum: Denizli-Kale

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen manaz »

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;
Hocam uğraştım ama tam yapamadım.
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.
Kullanıcı avatarı
manaz
Üye
Mesajlar: 23
Kayıt: 02 May 2009 06:25
Konum: Denizli-Kale

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen manaz »

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..

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.adotable2.insert;
form2.adotable2cikanpersonel.value:=adotable1aktifpersonel.text;
adotable1aktifpersonel.delete;
form2.adotable2.post;


not: unit1 in usesine unit2 yi eklemeyi unutma.
adotable2cikanpersonel Aynı formda (1 tane form var) kullanıyorum. iki adet Adotable getirdim. Bağlantılarını yaptım ado ile.
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.
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen ZeynelAbidin »

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

Kod: Tümünü seç

cikis.append
cikiskod.value:=aktifkod.value;
cikisadi.valua:=aktifadi.value;
.....
..
cikis.flushbuffer;
aktif.delete;
sql ilede ordaki kod bana da yanlış gibi geldi ama kodları ezbere bilemediğim için sana şablonunu söyleyeceğim

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
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen conari »

bu gibi durumlarda çıkış tarihini neden tabloda tutmuyorsunuz.
İleride illaki lazım olacaktır.

Listelemede de çıkış tarihi

Kod: Tümünü seç

is null 
ile aktifleri gösterirsiniz.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
manaz
Üye
Mesajlar: 23
Kayıt: 02 May 2009 06:25
Konum: Denizli-Kale

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen manaz »

conari yazdı:bu gibi durumlarda çıkış tarihini neden tabloda tutmuyorsunuz.
İleride illaki lazım olacaktır.

Listelemede de çıkış tarihi

Kod: Tümünü seç

is null 
ile aktifleri gösterirsiniz.
çıkış tarihi kaydı var veri tabanında. söylediğin çok mantıklı. ama nasıl yapacağımı tam olarak bilmiyorum. biraz detaylı anlatabilirmisin.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen conari »

Demek istediğim Aktif ve Çıkış tek tablo olur.

Kod: Tümünü seç

PERSONELGIRCIK gibi

ID,GIRTAR,CIKTAR
1 - 01.01.2009-31.12.2009
2 - 02.02.2009-NULL
Burada

Kod: Tümünü seç

select * from PERSONELGIRCIK where CIKTAR IS NULL
İle çıkışı olmayanlar gelir.

Kod: Tümünü seç

select * from PERSONELGIRCIK where CIKTAR IS NOT NULL
İle çıkışı olanlar gelir.
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..
ResimResim
Kullanıcı avatarı
manaz
Üye
Mesajlar: 23
Kayıt: 02 May 2009 06:25
Konum: Denizli-Kale

Re: Table'dan Table'a veri taşımak.

Mesaj gönderen manaz »

conari yazdı:Demek istediğim Aktif ve Çıkış tek tablo olur.

Kod: Tümünü seç

PERSONELGIRCIK gibi

ID,GIRTAR,CIKTAR
1 - 01.01.2009-31.12.2009
2 - 02.02.2009-NULL
Burada

Kod: Tümünü seç

select * from PERSONELGIRCIK where CIKTAR IS NULL
İle çıkışı olmayanlar gelir.

Kod: Tümünü seç

select * from PERSONELGIRCIK where CIKTAR IS NOT NULL
İle çıkışı olanlar gelir.
ileride şu tarihten sonra giren ve şu tarihe kadar çıkanlar dediğinde bu bilginin yanyana olması daha iyi olur.
Bu şekilde yaptım, işimi gördü. Çok Teşekkür ederim.
(Yardımcı olan tüm arkadaşlara canı gönülden teşekkür ederim.)
Cevapla