veritabanı update
rapsodim29.12.2003 - 16:23:33
sql ile en son guncellem yapılan kayıttan ıtıbaren kayıtlar bır baska database e nasıl aktarılır.mükerrer kayıt olmasın ve sonucunda iki veri tabanı aynı olmalı.ilginize tşkr ederim
 
mussimsek29.12.2003 - 16:49:19
Merhaba,

bu tip sorularda kullandığınız veritabanını belirtmek çok faydalı olacaktır.

1. Veritabanındaki tabloların birebir eşini oluşturduktan sonra, sql ile diğer tarafa aktarabilirsin.

INSERT INTO A_TABLOSU (SELECT * FROM A_TABLOSU@SID WHERE şart)

bu yazım Oracle için. @SID diğer veritabanına bir link.

2. Yol ise, Query ile istediğin kayıtları seçip, diğer veritabanına birebir kopyalaman. Yani : Append - ... - Post.

Kolay gelsin.
 
rapsodim29.12.2003 - 16:59:15
as/400 sisteminden veriyi SQL ile ilgili alanları indiriyorum.bazı kıstaslar kullanarak.bu alanları dbdemos da olusturdugum *.db database sine aktarıyorum.
while not query1.eof do
begin
table1.insert;
table1.FieldByName('ref').asstring:=query1.FieldByName('itnbr').asstring;
...
table1.Post;
query1.next;
end;
şeklinde fakat ikinci veri al dedegımde table1 ın sonuna tekrar kayıtları sıralı sekılde alıyor benım ıstedıgım son update edılen kayıttan sonrasını table1 alanıma kaydetsın ilginize tşkr ederim
 
mussimsek29.12.2003 - 17:17:44
Merhaba,

o zaman o kayıt var mı kontrol etmen lazım ya da diğer tarafa bir alan ekleyip kaydedilip kaydedilmediğini kontrol etmen lazım.

1. yol da :

if not Table1.Locate (anahtar alana göre) then
Kayıt_ekle

2. yolda : mesela kaydedildi diye bir alan ekleyip, bunu 1 yap. Query'de kayıtları seçerken :

Where kaydedildi<> 1

şeklinde seç.

Kolay gelsin.
 
rapsodim29.12.2003 - 17:50:43
fakat verılerı aldıgım database e verı yazmak yanı 1 gıbı prb. yapıor 20 bın kayıt oldugu ıcın yazmak iyi olmaz.veriyi alırken en son alınan kayıttan sonrakılerı almasını aldırabılırsem cok guzel olur.bu konuda yardımcı olursanız sevınırım
 
aslangeri30.12.2003 - 11:53:32
Merhaba.
Öncelikle kolay gelsin.
Hedef tablodan en son kaydın ID sini alıp
kaynak tablodan ID si büyük olanları gönderirsin.

Umarım yeterince açık olmuştur.
Yalnız kaynak tablodaki önceden gönderdiğin kayıtlardan birinde değişiklik olduğu zaman onu nasıl gönderirsin? Bu nun için
yeni bir alan ekleyip (mesala gonderildi) o alana verdiğiniz değere göre işlem yaptırabilrsiniz.

Eğer gonderildi 1 ise insert et
2 ise update et
0 ise işlem yapma gibi.

Kaydı güncelledikten sonra gönderildi yi 0 yapman lazım tabi.

Umarım yardımcı olabilmişimdir Question . İyi çalışmalar.
 
mussimsek30.12.2003 - 12:21:13
Merhaba,

evet aslangeri'nin dediği gibi, benim de bir önceki mesajımda önerdiğim yol uygun. Bir alan açıp buraya çekilenler için 1 ata. Seçerken 1'den farklı olanları seçtiğin zaman, aktarılan kayıtlar gelmez.

Kolay gelsin.
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com