Delphi Can

Orjinalini görmek için tıklayınız: Generator sıfırlama
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhaba

IB Expert 2019 da internal generator ile pk oluşturdum. Ama bu generator sol tarafta görünmüyor.
ID numarası bu generatore baglı bende generatoru sıfırlamak istiyorum.

Nasıl yapabilirim?

[img]Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.[/img]
execute statement
'ALTER SEQUENCE GEN_XXX_ID RESTART WITH 0';
@esistem arkadaşım doğru olan yolu göstermil. eline sağlık.

Fakat IBExpert'de Generator listesinin gelmemesi ilginç.. Normal şartlar altında orda listede görünmesi lazım. Siz sistem tablolarında oynama filan mı yaptınız?...

Tabloyu çüft tıklayıp, Tablo ekranından generator yaratmayı denryin..
o ekranda f5 yapın yine gelmezse generator oluşmamıştır.
(23-04-2019, Saat: 13:57)mcuyan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.@esistem  arkadaşım doğru olan yolu göstermil. eline sağlık.

Fakat IBExpert'de Generator listesinin gelmemesi ilginç.. Normal şartlar altında orda listede görünmesi lazım. Siz sistem tablolarında oynama filan mı yaptınız?...

Tabloyu çüft tıklayıp, Tablo ekranından generator yaratmayı denryin..
İlk olusturmada internal generator secenegini isaretledim firebird 3 kullandim

(23-04-2019, Saat: 13:25)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.execute statement
'ALTER SEQUENCE GEN_XXX_ID RESTART WITH 0';

Bu sekilde generator isimleri gelmiyor menuye. Ama generatorler gayet guzel calisiyor.
Oracle'da sequence sıfırlamak için şöyle bir fonksiyon işimi çözüyor.

create or replace
procedure reset_seq( p_seq_name in varchar2 )
is
   l_val number;
begin
   execute immediate
   'select ' || p_seq_name || '.nextval from dual' INTO l_val;

   execute immediate
   'alter sequence ' || p_seq_name || ' increment by -' || l_val || 
                                                         ' minvalue 0';

   execute immediate
   'select ' || p_seq_name || '.nextval from dual' INTO l_val;

   execute immediate
   'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
end;
(24-04-2019, Saat: 09:34)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Oracle'da sequence sıfırlamak için şöyle bir fonksiyon işimi çözüyor.

create or replace
procedure reset_seq( p_seq_name in varchar2 )
is
   l_val number;
begin
   execute immediate
   'select ' || p_seq_name || '.nextval from dual' INTO l_val;

   execute immediate
   'alter sequence ' || p_seq_name || ' increment by -' || l_val || 
                                                         ' minvalue 0';

   execute immediate
   'select ' || p_seq_name || '.nextval from dual' INTO l_val;

   execute immediate
   'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';
end;

Ben tablo olusturuken bu sekilde secmistim sorun burdan kaynaklanfi. Simdi generator isimleri gorunmuyor.

[img]Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.[/img]
select * FROM RDB$GENERATORS

deneyin bakalım ne varicek
(24-04-2019, Saat: 14:31)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.select * FROM RDB$GENERATORS

deneyin bakalım ne varicek

Evet bu şekild eliste karşıma geldi. Ama generator isimleri sistem tarafından verilmiş.işim zor olacak.