birbiri ile birebir aynı olan tabloların datalarını kopya..?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

birbiri ile birebir aynı olan tabloların datalarını kopya..?

Mesaj gönderen nitro »

merhaba
delphi 7 ve firebird kullanıyorum. bi tablo ile program boyunca baya bi haşir neşir oluyorum. Olay öyle bir boyuta geldi ki ben bu tabloya dataset ile bile kayıt yapmak istemiyorum. Çünkü dataset başka bir yerde kullanılıyor oluyor.
Tasarım hatası böyle bir durm, biliyorum ama geri dönüş yaomak için çok geç.
Ben de aynı tablonun bir tampon tablosunu oluşturdum. mesela tablom islemler ise aynı fieldlerden oluşan islemlertampon tablosunu oluşturdum.
bu tampon tabloya yazılan kayıtları programın bazı yerlerinde hızlıca ana tabloya aktarıp tampon tabloyu boşaltmak istiyorum.

Kod: Tümünü seç

islemlertampon.first;
while not islemlertampon.eof do begin....
gibi bi kod işime gelmiyor. Bir tablodaki Kayıtları (fieldleri birebir aynı olan) başka bir tabloya aktarmanın daha pratik bir yolu var mı?
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

Şöyle bir şey önerebilirim.

Kod: Tümünü seç

insert into asiltablom(alanlarım...) select alanlarım... from gecicitablom
SQL ifadesi sunucu tarafında çalışacağından bundan hızlısı zor.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

çok teşekkürler.
bu kodu ibquery'e mi yazayım kardeş?
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

ibsql daha iyi bir seçenek olabilir. ibQuery de olabilir.
ikut

Mesaj gönderen ikut »

nitrokonat yazdı:çok teşekkürler.
bu kodu ibquery'e mi yazayım kardeş?
Merhaba

Gerçi poshet ustamız işi bitirmiş ama evet ibquery e yazıp run edersen server ustunde isi bitirmis olursun. delete from ile de tabloyu bosaltırsın..
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

peki bu aktarım sırasında autoinc alanlar da aktarılacak mı?
Zira aktarılmaması beni işime gelir. ibSql ile insert yapınca ana tablodaki autoinc triggerleri falan çalışırmı?

(arkadaşlar kusura bakmayın, olayı tam olarak anlamadan deneme yapmak istemiyorum çünkü program büyük, yapacağım bir hata datalara büyük zarar verebilir. )
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

yedekler üzerinde denemelerini yapsan daha iyi olmaz mı? "Denenmemişse çalışmıyor demektir". Hiç bir zaman denemeksizin bir program yada kodun istendiği gibi çalıştığından emin olamazsın.

trigger lar çalışır.

Autoinc alanlara gelince.
Bu işi trigger ile yapmışsan ve trigger dada şu şekilde bir kontrol varsa;

Kod: Tümünü seç

IF (NEW."autoIncField" IS NULL) THEN
 /* gen_id li satır */
koddan da anlaşılacağı üzere alan boş değil ise değiştirilmez.

autoInc alan aktarılsın istemiyorsan insert into ve select ifadelerine alan isimlerine yer ver ve autoInc alanı listeye dahil etme.

kolyagelsin.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

herkese teşekkürler arkadaşlar.
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

poshet303 yazdı:autoInc alan aktarılsın istemiyorsan insert into ve select ifadelerine alan isimlerine yer ver ve autoInc alanı listeye dahil etme.
Bunun yerine trigger'daki if ... then satırı silinse olmaz mı?
Firebird'de yeniyim de, öğrenmek için soruyorum...
poshet303
Üye
Mesajlar: 235
Kayıt: 26 Eki 2005 01:15

Mesaj gönderen poshet303 »

Bunun yerine trigger'daki if ... then satırı silinse olmaz mı?
Ellbette olur. Ama bir DML işlemi için bir DDL değişikliği yapmak piratik ve mantıklı değil. Veritabanını tasarladık oluşturduk veri girdik programımız çalışıyor. Şimdi bir işlem için geçici olarak veritabanı yapımızda değişiklik yapmak bazı karışıklıklara neden olabilir.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Makale

Mesaj gönderen sabanakman »

Yakın zamanda bu konu ile ilgili bir makale yazmayı planlıyorum. Uygun zaman boşluğunu yakalayıp bir toparlarsam yaparım. Çok esnek ve kullanışlı bir yapı oluşturdum. Zaten meşguliyetimin sebebi de bu konu :) (yeni versiyona veri geçişi Paradox->SQLServer).
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla