tüm sqllerden erişebileceğim global değişkenler oluşturmak?

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
iqprog

tüm sqllerden erişebileceğim global değişkenler oluşturmak?

Mesaj gönderen iqprog »

nasıl delphide unitin tepesindeki varın altına yazdığımız değişkenlere her prosedür ve fonksiyondan erişiliyorsa, ben de bunun benzerini istiyorum.

örnek

sirket_depo_id diye bir degisken yapayım ve tüm sqlllerde bunu kullanabileyim

mesela "select * from iplikhareket where depo_id=sirket_depo_id" gibi.

olursa baya işimi görecek
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
Generatorlari belki kullanabilirsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kod: Tümünü seç

select * from iplikhareket where depo_id = gen_id(sirket_depo_id, 0)
şeklinde olabilir. Burada GEN_ID de 0 (sıfır) vererek değeri değiştirilmemiş olur. Bu arada önceden de sirket_depo_id generatörüne değer atanmalı;

Kod: Tümünü seç

execute statement 'set generator sirket_depo_id to '||:newvalue;
bu şekilde ya da;

Kod: Tümünü seç

select gen_id(sirket_depo_id, -1 * gen_id(sirket_depo_id, 0) + 154) from rdb$database
şeklinde. Buradaki 154 atanacak değer. Öncesinde mevcut değer kadar azaltılıp sıfırlama var :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
iqprog

Mesaj gönderen iqprog »

teşekkürler belki böyle birşeyler yapılabilecek gibi görünüyor.

sa daaaaa.

benim verdiğim örnekte veri tipi integer, siz haklı olarak ona göre çözüm ürettiniz ama o sadece bir örnek, veri tipi varchar da olabilir ya da bi başkası. o zaman gen_id işe yaramaz.

bunlar ayar değişkenleri olacak, benim bir ayar tablom var.
no integer,ad varchar,deger varchar şeklinde.
ben bu tablodan
örneğin
"select * from iplikhareket where depo_id=(select ... from ayar ...)" şeklinde işi hallediyorum aslında.

ama bunlar birer değişken olsa idi iş çok sade olacak ve hızlı çalışacaktı.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Sayısal alanlar dışındaki değişken olayı için sizdeki çözüm daha mantıklı. GEN_ID() ile verdiğimiz örnek soru bu şekle geldikten sonra biraz uyduruk kaldı :cry: Bir tabloda gerekli değişkenleri tutup ayırıcı kod ile bir sorgu ile ulaşabilirsiniz. Burada çok az kayıt olacağından perfomansa fazla bir yük getirmeyecektir.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
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,

RDB$GET_CONTEXT ve RDB$SET_CONTEXT isimli FB 2.0'da eklenilmiş yeni Builtin Fonksiyonlar var. Bunlar ile belki istediğin bazı şeyleri yapabilirsin.

Sizin sorunuz üzere FB Geliştirmenleri ile görüştüm (Feature Request olarak Global Değişken Tanımlanması ve Kullanılması). Ancak dönen yanıt, Ann Harrison'dan gelen yanıt. Global Değişkenler büyük projeleri çöküşe götüren yollardan biridir. Şeklinde oldu. Bunun yerine, GET/SET CONTEXT değişkenlerini kullanabilirsiniz şeklinde bir öneri geldi.

FB 2.0 Release Notes'da 32. Sayfada bu konu işleniyor. Siz de oraya bir göz atınız. Belki tam olarak işinizi görmez ama onlardan faydalanabilirsiniz. Zira Sistem, Connectio, User, Transaction gibi bir çok konuda bilgi veriyor bu GET/SET Context olayı.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
iqprog

Mesaj gönderen iqprog »

bir ara fb2ye geçmeye yeltenmiş ama ibxden dolayı geçememiştim. sonra bir ara fibplusa çevirdim projeyi, bu senin cevabın üzerine ib2ye geçme isteğim tekrar dürtüldü.

veeee geçtim fb2ye bir problem çıkmadı. enazından ilk bakışta. fibplus fb2de sorun çıkarmıyor. ama ibx kullananlara üzücü haberlerim var. ibx ve fb2 bende sorun çıkardı. ne sorun oldu diye sormayın hemen başladı hata mesajları çıkmaya ve ben de bunları görür görmez o ara ertelemiştim fb2 olayını. ama fibplus işi halletti.

vatana millete hayırlı uğurlu olsun, gazam mübarek olsun.

kuri , bu arada sorunumla ilgili emek harcadığın için çok teşekkür ederim.
Cevapla