table yi baska bir tableye kopyalamak?

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

table yi baska bir tableye kopyalamak?

Mesaj gönderen metemete »

aa tablusundaki secili alanı bb tablosuna kopyalamak istiyorum
bunu trigger içinde kullancağım

örnekle sunun gibi diyerbilirz

insert into bb(no) values ( (select no from aa where no>100 ))

aynı andan birden fazla satırı nasıl aktarabilirim ?
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

table1
-------
field1
field2
field3

table2
------
field1
field3

olsun
insert into table2 select field1,field3 from table1

dedigin islemi yapacaktır...
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

tşk ederim

Mesaj gönderen metemete »

Allah razı olsun tşk ederim oldu.

peki yine sql için table1.next e karsılık gelen komut varmı?

daha doğrusu mesela söle bir şeye yapmak istiyorum

xx=table2.bakiye
select refno,tutar,islem from table1 where islem='Veresiye' begin

if xx>0 then begin xx=xx-table1.tutar; table1.tutar=0 end
table1.next

end;
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

procedure kullanarak her turlu taklayı atarsınız...
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

Mesaj gönderen metemete »

procedure kullanıyorum zaten .
demek ki biraz da takla atarak çözcez işi
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

:ara for select ... into ... do
yapısını inceleyin
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

Mesaj gönderen metemete »

conversion error from string "400" hatası alıyorum

Kod: Tümünü seç

CREATE PROCEDURE B_SPINS_CARI_HAREKET (
    CHNO NUMERIC(15,0),
    FIS_NO NUMERIC(15,0),
    TARIH DATE,
    ISLEM VARCHAR(15),
    ADET NUMERIC(9,0),
    ACIKLAMA VARCHAR(40),
    STOK VARCHAR(40),
    TUTAR NUMERIC(15,2),
    CARI_KOD NUMERIC(15,0),
    CARI_UNVAN VARCHAR(40))
AS
DECLARE VARIABLE DLR_KAYIT_SAYISI NUMERIC(15,0);
DECLARE VARIABLE DLR_UNVAN VARCHAR(40);
DECLARE VARIABLE XTUTAR NUMERIC(15,2);
DECLARE VARIABLE XCHNO NUMERIC(15,0);
DECLARE VARIABLE S NUMERIC(15,0);
DECLARE VARIABLE XKALAN_TUTAR NUMERIC(15,0);
begin
     UPDATE RDB$TRIGGERS SET RDB$TRIGGER_INACTIVE=1 where RDB$TRIGGER_NAME = 'B_TI_CARI_HAREKET';
     UPDATE RDB$TRIGGERS SET RDB$TRIGGER_INACTIVE=1 where RDB$TRIGGER_NAME = 'B_TU_CARI_HAREKET';
     UPDATE RDB$TRIGGERS SET RDB$TRIGGER_INACTIVE=1 where RDB$TRIGGER_NAME = 'B_TD_CARI_HAREKET';

  if (:Islem='Tahsilat') then
  update cari_hareket set Kalan_tutar=0 where chno=1;[b]Bu satırda hata veriyor?[/b]
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

hocam triggerları procedure icinde inactive ediyorsun ama aslında inactive olmuyor, procedure commit edilmedigi icin bu tarz bir yapı kullanman zor,
bunun yerine Terminator arkadasın onerdigi bir yapı vardı,
Tablonda TriggerEnable seklinde bir kolon olustur.
tabloda islem yapmadan once bu sutunu guncelle, sonra trigger kodunda bunu kontrol ederek kodları calıstır yada calıstırma,
Bu sekilde bir cozum haricinde bir yol yok diye biliyorum,

Eger varsa baska bir cozumu bildiklerimize bir yenisini katmıs oluruz. :)
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla