Trigger ile Autonic alan

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ı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Trigger ile Autonic alan

Mesaj gönderen Fatih! »

1 - Trigger kullanarak Autonic alan oluşturdum afterpost ta transectionu commitretraing ve refresh yapmama rağmen Autoinc olan alanın değeri tabloyu açıp kapayana dek görünmüyor. tek tabloda sorun olmuyor ama master detailde foreign key null hatası alıyorum.

2 - interbasede aynı anda veritabanına hem ib expert hemden delphiden ulaşabiliyorum ama Firebird veritabanına ulaşamıyorum
nasıl halledebilirim bunu?

Database oluştururken pagesize nedir ne anlama geliyor?
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

1. Sorunuza ilişkin daha taze taze sıcak sıcak konuşulmuş olan bir konu viewtopic.php?t=7054
Biraz daha dikkatli olunursa ve arama yapılırsa aradıklarınza ilişkin yanıtların bir çoğunun aslında mevcut olduğunu göreceksiniz.

2. IB Expert kullanmadığım için yorum yok.

3. Soru, Server Diske dosya oluştururken kullanacağı page'lerin size'ı. Bunu default değerinde bırakırsanız sizin açınızdan daha iyi olur. Eğer oluşturacağınız kayıtların (1 recordun boyu) çok uzun ise bu değeri de arttırabilirsiniz. Index pagelerde ve diski kullanırken burada belirtilen size'lara göre hareket edecektir. Performans ayarlamalarında kullanılır ama veri hacminizin çoook büyük olduğu durumlarda bir kısım performans artışı veya azalması getirebilir.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

master-detail yapıda generotoru trigger ile degil de
ibdatasetin generatorfield ozelligi ile artırın
burada da onnewrecordu secin
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

Sorunuza ilişkin daha taze taze sıcak sıcak konuşulmuş olan bir konu viewtopic.php?t=7054
bunu görmüştüm ben bu işi ib/fb ye bırakmak istiyorum
ibdatasetin generatorfield ozelligi ile artırın
ib bileşenlerini kıullanmıyorsak nolcak
En son Fatih! tarafından 23 Şub 2005 11:24 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

kuri hocam başıma ilginç birşey geldi. FB'de hazırladığım VT'yapısı bir anda hata vermeye başladı. Unsupported SQL command vs.. Fazla miktarda SP var. Sorun yaratması için bir sebep yoktu. Metadata alayım da yeniden yaratayım tabloyu dedim. Yaratınca aynı problem oluştu.

Pagesize olarak 1024 kullanıyordum. 2048 yapınca hata vermedi. Bu SP'ler yüzünden olabilir mi? Biryerlerde böyle bir limit olduğunu okuduğum ve hata mesajını hatırladığım için PS arttırma yoluna gittim.

Böyle birşey ile karşılaştın mı?
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

bana soruyosan hayır :roll:
acaba trigger bu işi yaparken vt den commt gibi bişimi yapmalıyız :?:
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

coderlord bir alan isminde turkce karakter olabilir.
bir kere benim de basıma gelmisti bir tablodaki alan adını degiştirirken yanlıs karakter girdim
tabloyu da acamaz oldum sql komutu ile alan adını bir sekilde degistirmistim.
ÜŞENME,ERTELEME,VAZGEÇME
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Olabilir bir bakayım. Yanlız Pagesize'ı arttırınca hatanın kaybolması tuhaf.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

CoderLord : Walla ben de hiç öyle bir şeyle karşılaşmadım.

FaoSoft : Eğer IB bileşenlerini kullanmıyorsanız o zaman Generator oluşturan bir SP yapacaksınız ve BeforeInsert'de AutoInc olan alan için bu SP'den Generate edilen ID'yi alıp Master tablonuza manuel siz koyacaksınız. Aynı şekilde Detail table'ınız içinde benzer şeyleri yapmalısınız.

Aşağıda benim bu tür işler için yazmış olduğum bir adet SP var. Örnek teşkil etmesi açısından yazdım.

Kolay Gelsin

Kod: Tümünü seç

SET TERM ^^ ;
CREATE PROCEDURE STP_GEN_ID (
  VAR_TYPE Integer)
 returns (
  RET_ID Integer)
AS
/*
  Procedure: ID'lerin Generate Edildiği Stored Procedure

  Author   : Adnan ÖNCEVARLIK
  Date     : 21.10.2003
  Purpose  : Table'lar İçin ID'lerin Generate Edildiği Stored Procedure
  Params
  ------
  VAR_TYPE  : Hangi Table İçin ID Üretilecek
  RET_ID    : Oluşturulan ID
*/
BEGIN
  IF (VAR_TYPE = 1) THEN /* MOV_COIN_BOX */
    RET_ID = GEN_ID(GEN_CBM_ID,1) ;
  ELSE
  IF (VAR_TYPE = 2) THEN /* MOV_COLLECTION */
    RET_ID = GEN_ID(GEN_COL_ID,1) ;
  ELSE
  IF (VAR_TYPE = 3) THEN /* MOV_TRUCK */
    RET_ID = GEN_ID(GEN_TRC_ID,1) ;
  ELSE
  IF (VAR_TYPE = 4) THEN /* PUB_ANLYZE */
    RET_ID = GEN_ID(GEN_ANL_ID,1) ;
  ELSE
  IF (VAR_TYPE = 5) THEN /* PUB_CITY */
    RET_ID = GEN_ID(GEN_CIT_ID, 1) ;
  ELSE
  IF (VAR_TYPE = 6) THEN /* PUB_CONTRACT */
    RET_ID = GEN_ID(GEN_CON_ID, 1) ;
  ELSE
  IF (VAR_TYPE = 7) THEN /* PUB_FACTORY */
    RET_ID = GEN_ID(GEN_FAC_ID, 1) ;
  ELSE
  IF (VAR_TYPE = 8) THEN /* PUB_SOURCE */
    RET_ID = GEN_ID(GEN_SRC_ID, 1) ;
  ELSE
  IF (VAR_TYPE = 9) THEN /* PUB_SUPPLIER */
    RET_ID = GEN_ID(GEN_SUP_ID, 1) ;
  ELSE
  IF (VAR_TYPE = 10) THEN /* PUB_TYPE */
    RET_ID = GEN_ID(GEN_TYP_ID, 1) ;
  ELSE
  IF (VAR_TYPE = 11) THEN /* PUB_ZONE */
    RET_ID = GEN_ID(GEN_ZON_ID, 1) ;
  ELSE
  IF (VAR_TYPE = 99) THEN /* SYS_DEFAULTS */
    RET_ID = GEN_ID(GEN_SYS_ID, 1) ;

END
^^
SET TERM ; ^^
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Faosoft :
2 - interbasede aynı anda veritabanına hem ib expert hemden delphiden ulaşabiliyorum ama Firebird veritabanına ulaşamıyorum
nasıl halledebilirim bunu? :

Eğer VT dosyasının uzantısını gdb olarak değiştiriseniz ulaşabilmeniz lazım.
Cevapla