SP içinden veritabanı ismini öğrenmek

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

SP içinden veritabanı ismini öğrenmek

Mesaj gönderen Salih »

Merhaba,

O anda kullanılan veritabanı ismini SP içinden öğrenmek mümkün mü ? Böyle bir sistem değişkeni ya da UDF var mı ?
Sevgi, Saygı.....
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

duştayken de TC kimlik numaran lazım oluyor mu? :)
Firebird Foundation Member #208
http://www.firebirdsql.org
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

VT ismini zaten programınız biliyor. Bağlantı kurduğunuz dosya VT adınız. SP'ye bunu parametre olarak gönderebilirsin.

Bir sistem değişkeni olup olmadığına yine bakayım, ancak sanmıyorum.
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

coderlord yazdı:VT ismini zaten programınız biliyor. Bağlantı kurduğunuz dosya VT adınız. SP'ye bunu parametre olarak gönderebilirsin.

Bir sistem değişkeni olup olmadığına yine bakayım, ancak sanmıyorum.
Uygulama biliyor, SP de bilsin istiyor sanırım.
ismi, diski, serveri ve pathi her zaman değişebilecek bir dosyayı ne diye
SP de ihtiyaç duyarlar anlamış değilim.
bu, patalojik bir tasarım ve kullanım.
veritabanı ismi ve pathi bir güvenlik unsurudur ve alias sistemi bunun için vardır. DB pathini hadi SP ye gönderdin parametreyle diyelim..
orada n'apacaksın bu bilgiyle???
ilişkisel veritabanı yönetim sistemi adı üstünde veritabanını kendi yöneten sistemdir, bir sistem dosyaları takip sistemi değildir.
paradoxtan ordan burdan kalma kötü alışkanlıklarınızdan arınmanız lazım.
ganjda mı yıkanırsınız, çölde teyemmüm mü yaparsınız bilmem ama, arınmak ve sapla samanı, amaçlarla araçları karıştırmaz hale gelmek şart.
Firebird Foundation Member #208
http://www.firebirdsql.org
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Kullandigim veritabaninin isminde YIL bilgisi var... Data2005.gdb data2006.gdb data2007.gdb gibi ... Veritabani isminden yil bilgisini çekip, SP içinde bir takim islemler yapacagim.
HAMDIM, PİŞTİM, YANDIM. (Ne güzel, herkes sizin gibi olsa keşke !)
Sevgi, Saygı.....
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Hoca damdan düşünce millet başına toplanmış neyin var diye... Hoca da bana damdan düşen birini getirin demiş halimden ancak o anlar....

Bence SP içinde veritabanı adına ihtiyaç duymak hiç de öyle abartıldığı gibi olmaması gereken yanlış tasarımların sonucu bir ihtiyaç değildir... Sadece herkesin başına gelmemiş olabilir o kadar....

Düşününki buyuk bir projeniz var ve bir kac veritabanınız var. Bunların da isimler ifarklı. Ve her ikisinde de var olan ortak bir SP niz var ama bulundugu veritabanına gore yaptığı ufak tefek farklı işler var. Böyle bir durumda benim tercihim tek bir SP yapıp bunu her veritabanına koymak olur. Her veritabanına ozel o SP yi ozellistirmenin bakımı çok zor. SP deki her değişiklikte her veritabanı verisoynununda oynama yapmanız gerekiyor. Ama DB ismine SP içinden ulaşarak yapacağımız kontrol ile kodları yazdık mı her turlu SP değişikliğinde yeni halini butun DB lerde hiç düşünmeden güncellersiniz olur biter....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

tamam da @fahrettin abi de nasıl öğreneceğiz.
terminator yazdı:duştayken de TC kimlik numaran lazım oluyor mu?
eğer duştayken akbanktan telefonla kredi almak istersek lazım olabilir.
:lol: :lol: :lol: :lol:
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

fahrettin yazdı:Hoca damdan düşünce millet başına toplanmış neyin var diye... Hoca da bana damdan düşen birini getirin demiş halimden ancak o anlar....

Bence SP içinde veritabanı adına ihtiyaç duymak hiç de öyle abartıldığı gibi olmaması gereken yanlış tasarımların sonucu bir ihtiyaç değildir... Sadece herkesin başına gelmemiş olabilir o kadar....

Düşününki buyuk bir projeniz var ve bir kac veritabanınız var. Bunların da isimler ifarklı. Ve her ikisinde de var olan ortak bir SP niz var ama bulundugu veritabanına gore yaptığı ufak tefek farklı işler var. Böyle bir durumda benim tercihim tek bir SP yapıp bunu her veritabanına koymak olur. Her veritabanına ozel o SP yi ozellistirmenin bakımı çok zor. SP deki her değişiklikte her veritabanı verisoynununda oynama yapmanız gerekiyor. Ama DB ismine SP içinden ulaşarak yapacağımız kontrol ile kodları yazdık mı her turlu SP değişikliğinde yeni halini butun DB lerde hiç düşünmeden güncellersiniz olur biter....
Bir veritabanı yaratıyorsunuz, ve içine o veritabanını tanımlayacak bir bilgi yazmak yerine, dosya adını mı kullanmayı tercih ediyorsunuz?

hadi deyelim mecbur kaldın, aklına iyi bir fikir gelmedi, çok DB dosyası kullanıyorsun ve ortak objeleri de tek elden yönetmek istiyorsun.
sen bi SP yi bütün DB lere güncellemek için zaten bir sürü özel işlem yapacaksın. CARI_200xx.FDB gibi ne kadar dosya varsa bulup aynı scripti hepsinde çalıştıracaksınız. birinde kazyla fizksel bir arıza oluşup SP bozulsa hangisi bozuk onu bile farkedip bulmak bi dert. demek ki bilgisayarcıların çoğu bu yüzden gece gündüz çalışıyor, işleri hiç bitmiyor
hatta ben helaya bile koşa koşa gidenleri gördüm.. ;)
sen bu işlemi sysbase de yapıyor musun?
yani farklı DB isimlerinde sistem açıp değişken isimli ve sayısı dinamik olan DBler yaratıyor musun?
bunu oracle ile yapan var mı? ya da MSSQL ile?
bir sistemde ne kadar DB dosyası açıksa ve kullanılıyorsa sistemin performansının da o sayıda bölüneceğini de biliyor olmalısınız, hadi işgücünüzü ve emeğinizi önemsemediğinizi varsayalım...
Firebird Foundation Member #208
http://www.firebirdsql.org
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

aslangeri yazdı:tamam da @fahrettin abi de nasıl öğreneceğiz.
terminator yazdı:duştayken de TC kimlik numaran lazım oluyor mu?
eğer duştayken akbanktan telefonla kredi almak istersek lazım olabilir.
:lol: :lol: :lol: :lol:
Reklamı izlediyseniz türklerin kalitesini de görürsünüz.
amerkialı keşfeder, japon keşfeder geliştirir.
ya türk? türk napar?
anca borç istemesini bilir, hazır eski teknolojileri bile bu amaçla kullanır!
O reklam bütün türk halkının suratına atılmış koca bir tokat ama halkım
nersiyle düşünüyorsa artık uzun zamandır, pek bi şuursuz maşallah...
Firebird Foundation Member #208
http://www.firebirdsql.org
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

fahrettin yazdı: Düşününki buyuk bir projeniz var ve bir kac veritabanınız var. Bunların da isimler ifarklı. Ve her ikisinde de var olan ortak bir SP niz var ama bulundugu veritabanına gore yaptığı ufak tefek farklı işler var. Böyle bir durumda benim tercihim tek bir SP yapıp bunu her veritabanına koymak olur. Her veritabanına ozel o SP yi ozellistirmenin bakımı çok zor. SP deki her değişiklikte her veritabanı verisoynununda oynama yapmanız gerekiyor. Ama DB ismine SP içinden ulaşarak yapacağımız kontrol ile kodları yazdık mı her turlu SP değişikliğinde yeni halini butun DB lerde hiç düşünmeden güncellersiniz olur biter....
Hay agzina sağlık Fahrettin abi, benim derdimi benden güzel ifade etmissin... Simdi veritabanini ben degil musteri kullaniyo haliyle, böyle bir ihtiyaç ortaya çıkınca sorayım belki kolay bir yolu vardır dedim, nerdeyse dayak yiyecektim, ucuz kurtuldum sayende :twisted:

Madem bir yolu yok, parametreyle halledicez artık...
Katkıda bulunanlara teşekkürler, sevgiler, saygılar...
Sevgi, Saygı.....
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

Salih yazdı:
fahrettin yazdı: Düşününki buyuk bir projeniz var ve bir kac veritabanınız var. Bunların da isimler ifarklı. Ve her ikisinde de var olan ortak bir SP niz var ama bulundugu veritabanına gore yaptığı ufak tefek farklı işler var. Böyle bir durumda benim tercihim tek bir SP yapıp bunu her veritabanına koymak olur. Her veritabanına ozel o SP yi ozellistirmenin bakımı çok zor. SP deki her değişiklikte her veritabanı verisoynununda oynama yapmanız gerekiyor. Ama DB ismine SP içinden ulaşarak yapacağımız kontrol ile kodları yazdık mı her turlu SP değişikliğinde yeni halini butun DB lerde hiç düşünmeden güncellersiniz olur biter....
Hay agzina sağlık Fahrettin abi, benim derdimi benden güzel ifade etmissin... Simdi veritabanini ben degil musteri kullaniyo haliyle, böyle bir ihtiyaç ortaya çıkınca sorayım belki kolay bir yolu vardır dedim, nerdeyse dayak yiyecektim, ucuz kurtuldum sayende :twisted:

Madem bir yolu yok, parametreyle halledicez artık...
Katkıda bulunanlara teşekkürler, sevgiler, saygılar...
Ben sana yardım ettim aslında, okuduklarını muhakeme etmeden
okursan, sadece göz egzersizi yapmış olursun.
bütün SP lerini parametreyi kullanmak amaçlı güncelleyeceğine,
bütün DB lere bir tablo aç, adına KUNYE mi dicen ne diceksen
içine, istediğin YIL ve firma bilgilerini o dosyaya özel olacak şekilde koy.
her dosya yarattıgında da bunu bu şekilde ayarla.
SP veya trigger içinde de bu bilgiyi istediğin gibi select edip, istediğin
koşullara uyana göre işlem yaparsın. bu işlem trafik ve uygulama kodu karmaşası da yaratmaz. Ve dosyanın adıyla oynansa bile doğru çalışmaya devam eder!
Firebird Foundation Member #208
http://www.firebirdsql.org
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Sayin Ali Bey,
bence çağdışı tasarımlarla çalıştığımız ve bu yüzden de yamalı bohça halindeki projeleri yamalamakla uğraştığımız veya bir çok kişinin bu durumda olduğu önyargınızı bırakarak değerlendirme yapmanız gerekiyor.... Yani SP icinden DB adını ogrenmek isteyen birine bunu Firebird de soyle yapaibilirsin veya yapamazsın demek ve eger tasarım probleminden supheleniyorsanız da bunu lisanı munasip ile sormanız çok daha uygun olurdu.
Nitekim ben boyle bir ihtiyacın son derece duzgun bir tasarımda da karşınıza çıkabileceğinin birebir canlı şahidi olduğum için fikirlerimi beyan etme ihtiyaci hissettim.

Bahsettiğiniz şeyleri yapmadığım kesin olmakla birlikte benim sybase de ne yaptigim cok da onemli degil. Dediğim gibi Sailh Bey in tasarımını bilmiyorum. Fakat nizami bir tasarımda bunun bir ihtiyaç olabileceğinden emin olduğum için bilgimi paylaşayım istedim...

Saygılarımla.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Hocam senin üslubun mu sert, ben mi yanlış algılıyorum bilemiyorum, ama yardımların için cidden teşekkür ederim. Yardım ederken arada 1-2 fırça cümlesi de yazmak zorunda değilsindir sanırım. Belki de ben alıngan günlerimden birindeyim.
Parametre ile çağırmak tamam. Ama bu da aslında benim işimi tam olarak çözmüyor :) Neden diyeceksin... Programdan çağırırken parametreyle çağırırım, o kolay. Ama bazı SPler programdan çağrılmıyor. Örneğin bir takım konuları denetlemek için IB Expert içinden SP_DENETLE diye bir SP çalıştırıyorum, o da başka bazı SPleri çağırıyor, işte tam orada veri tabanı isminden YIL ı çekip alsam güzel olacak... Olayı kısa yoldan çözebilmek için böyle bir istekte bulundum yani...

Saygılar, sevgiler, teşekkürler...
Sevgi, Saygı.....
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

Salih yazdı:Hocam senin üslubun mu sert, ben mi yanlış algılıyorum bilemiyorum, ama yardımların için cidden teşekkür ederim. Yardım ederken arada 1-2 fırça cümlesi de yazmak zorunda değilsindir sanırım. Belki de ben alıngan günlerimden birindeyim.
Parametre ile çağırmak tamam. Ama bu da aslında benim işimi tam olarak çözmüyor :) Neden diyeceksin... Programdan çağırırken parametreyle çağırırım, o kolay. Ama bazı SPler programdan çağrılmıyor. Örneğin bir takım konuları denetlemek için IB Expert içinden SP_DENETLE diye bir SP çalıştırıyorum, o da başka bazı SPleri çağırıyor, işte tam orada veri tabanı isminden YIL ı çekip alsam güzel olacak... Olayı kısa yoldan çözebilmek için böyle bir istekte bulundum yani...

Saygılar, sevgiler, teşekkürler...
Salih,
Sen bir veritabanına yıla kuruma vs göre
değişik isimlerle yaratabiliyorsan,
yani 2005 diyebiliyorsan, onun içine, o dosyanın kendi adını vs ne istersen onu da koyabilirsin değil mi? hem böylece adı bozulmuş ya da karıştırılmış bir dosyanın ne dosyası oldugu, hangi yıla ait oldugu da cebelleşmeden bulunur. yani bir DB nin içinde o DB ile ilgili bir künye olmalıdır.
versiyon bilgisi, firma bilgisi, aktif yıl, vs gibi faydalı bilgile konabilir.
ve istediğin triggerdan procedureden bunu alıp işlemlerini yönlendirebilirsin. hem böylece alias bile kullansan bir sorun yaşamazsın.
tarzım sert gibi gelebilir, değil. Böyle bir kullanım tarzını inanın Fb ün yazarı jim amca görse burada demediğini bırakmaz.
çoklu DB kullananlara önemli bir mesajım daha: two phase commit kullandığınızda ve sistemde sorunlar oluştuğunda limbo transactionlarınız kalabilir ve fix etmezseniz locklı kalır.
Neyse, bildiğiniz gibi kullanın, ama bir kaosa sürüklendiğinizde bunun için FB ü suçlamayın ya da kaosunuzdan kurtaracak isteklerde bulunmayın. FB cülere bunları yaptıramazsınız. hatta çok yardımsever olmalarına rağmen cevap veren bile olmaz.
Firebird Foundation Member #208
http://www.firebirdsql.org
Kullanıcı avatarı
Terminator
Üye
Mesajlar: 313
Kayıt: 13 Ara 2005 01:45
Konum: İzmir, ama Aydın Efesi!

Mesaj gönderen Terminator »

fahrettin yazdı:Sayin Ali Bey,
bence çağdışı tasarımlarla çalıştığımız ve bu yüzden de yamalı bohça halindeki projeleri yamalamakla uğraştığımız veya bir çok kişinin bu durumda olduğu önyargınızı bırakarak değerlendirme yapmanız gerekiyor.... Yani SP icinden DB adını ogrenmek isteyen birine bunu Firebird de soyle yapaibilirsin veya yapamazsın demek ve eger tasarım probleminden supheleniyorsanız da bunu lisanı munasip ile sormanız çok daha uygun olurdu.
Nitekim ben boyle bir ihtiyacın son derece duzgun bir tasarımda da karşınıza çıkabileceğinin birebir canlı şahidi olduğum için fikirlerimi beyan etme ihtiyaci hissettim.

Bahsettiğiniz şeyleri yapmadığım kesin olmakla birlikte benim sybase de ne yaptigim cok da onemli degil. Dediğim gibi Sailh Bey in tasarımını bilmiyorum. Fakat nizami bir tasarımda bunun bir ihtiyaç olabileceğinden emin olduğum için bilgimi paylaşayım istedim...

Saygılarımla.....
ben de sana nasreddin hocanın bindiği dalı kestiğini söylüyorum.
ağaçtan düşersin demek bir önyargıysa sence, kabul.
bindiğim dalı kessem bile düşmeyeceğim şekilde bir iskele sistemi geliştirilmesi lazım diye tutturursa, ne diycez kendisine?
Ben ihtiyaç duyulabilecek bir tasarım düşünemiyorum, birbirinin aynısı procedureleri çalıştırmak üzere ayrı ayrı yaratılıp optimizasyon sağlanmış bir sistemi aklım almıyor. ama FB hosting hizmeti veren bir firma herkese özel bir DB açabilir onu anlarım ama...
sysbase, oracle mssql kullanmıyor böyle şeyleri FB neden kullansın?
RDBMS sistemlerden FB ye geçen kullanıcılar hiç böyle bir kullanıma kalkışmıyorken, btrieve, paradox, isamdan gelenlerin buna kalkışmasını
anlayışla karşılayıp yanlış destek olmak doğru mu sence?
Firebird Foundation Member #208
http://www.firebirdsql.org
Cevapla