Firebird' de dosya adı değişken olabilir mi ? !!!

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
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Firebird' de dosya adı değişken olabilir mi ? !!!

Mesaj gönderen Salih »

Merhaba,

Delphi de IBQuery ile Stored Procedure çağırıyorum ve SP nin içinde epeyce işlemden sonra geçici bir tablo yaratıyorum. (Kısaca yazarsam, bir tabloya kaydedilmiş kayıtları okuyup kullanıcının verdiği kriterlere göre bazı kayıtları seçerek, bazı sütunları aynı olanları biraraya toplayıp sayısını başka bir sütuna yazıyor, sonra belirli kriterlere göre sıralayıp, başka tablolardan bazı bilgileri ekleyerek geçici bir tablo oluşturuyorum.) Bu işlemleri Delphi tarafında yapmak yerine SP ile daha hızlı olacağını düşünerek sistemi böyle kurdum, çok da hızlı çalışıyor.

Ancak sorun şurada : kullanıcının bir tanesi programda ilgili bölüme girip IBQuery den gelen bilgileri DBgrid üzerinde dolaşarak incelerken bir başka kullanıcı da aynı işlemi başka parametrelerle yapmak isterse haliyle deadlock hatası alıyor.

Şöyle bir özellik olsa ne güzel olur diye hayal kurdum, ama sanırım yok :)

Kod: Tümünü seç

if ... TBLISIM = TMP1 else TBLISIM = TMP2...
CREATE TABLE &TBLISIM...... 
gibi yaratılacak olan tablonun isminin değişken olması mümkün mü ? :)

Selamlar, Saygılar...
Sevgi, Saygı.....
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Firebird' de dosya adı değişken olabilir mi ? !!!

Mesaj gönderen mussimsek »

Firebird 2.0'da temporary tablo özelliği var. İstediğiniz tarzda tabloyu bir kere create ediyorsunuz. Daha sonra lazım olunca içine kayıt ekliyorsunuz, işiniz bitince tüm kayıtlar siliniyor.

İşinize yarayabilir, incelemenizde fayda var.

Kolay gelsin.
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Re: Firebird' de dosya adı değişken olabilir mi ? !!!

Mesaj gönderen Salih »

Firebird 2.0'da temporary tablo özelliği var. İstediğiniz tarzda tabloyu bir kere create ediyorsunuz. Daha sonra lazım olunca içine kayıt ekliyorsunuz, işiniz bitince tüm kayıtlar siliniyor.
Teşekkürler hocam. Önerdiğiniz gibi 2.0 daki temporary table konusunu incelemeye başladım, şimdilik durum ümitsiz gibi görünüyor ama, bakalım...

Geçici tabloları ben şu anda TEMP1 vs diye baştan tanımlayarak zaten kullanıyorum, ama asıl istediğim yaratılacak tablonun isminin bir değişken tarafından atanabilmesi...

Bir de kullanıcının bağlantı sayısını veren bir global değişken olsa süper olacak, ama araştırdığım kadarıyla o da yok. CURRENT_CONNECTION diye bir değişken var ama tam olarak benim istediğimi vermiyor. Benim istediğim şu : O anda sunucuya 4 kişi bağlı ise bir değişkenin değerine baktığımda bu kullanıcılara ilişkin 1,2,3,4 diye ya da bağlantı sırasına göre 1,3,4,7 gibi değerlerin verilmesi...

Amacım connection numarasını yaratılacak tablonun isminde kullanmaktı, ama dediğim gibi benimkisi hayal :) Başka bir hinlik düşünmem lazım.

Tekrar teşekkürler, saygılar...
Sevgi, Saygı.....
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Firebird' de dosya adı değişken olabilir mi ? !!!

Mesaj gönderen emin_as »

Execute statement ile yapabilirsin.
Aşagıdaki link fikir verir.

http://www.firebirdsql.org/refdocs/lang ... cstat.html

linkten bir alıntı:

Kod: Tümünü seç

create procedure DynamicSampleThree 
  ( TextField varchar(100),
    TableName varchar(100) )
returns 
  ( LongLine varchar(32000) )
as
declare variable Chunk varchar(100);
begin
  Chunk = '';
  for execute statement
    'select ' || TextField || ' from ' || TableName into :Chunk
  do
    if (Chunk is not null) then
      LongLine = LongLine || Chunk || ' ';
  suspend;
end
ibrahimcoban
Üye
Mesajlar: 163
Kayıt: 11 Eki 2005 10:44
İletişim:

Re: Firebird' de dosya adı değişken olabilir mi ? !!!

Mesaj gönderen ibrahimcoban »

Bilgisayarın adı,kullanıcı adi,ip adresi, mac adresi gibi
uniqe bir değişkenle yapabilirsin.
Sonucta bunlar ağda tek olacaktır.
http://ibrahimcoban.com/
Lazarus, Kol-Ce,Delphi ve C#
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Firebird' de dosya adı değişken olabilir mi ? !!!

Mesaj gönderen Kuri_YJ »

Selamlar,

emin_as isimli arkadaşımızın önerisi ilaç olacaktır :) Ayrıca isimlendirirken, kullanıcı adını da bir parametre olarak kullanabilirsin (Yani tekil olarak kullanıcı adı değil, makina IP'si gibi bazı şeyleri de eklersen UNIQUE bir isim mantığı oluşturabilirsin.

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