Firebirdden vazgeçmek üzereyim sırf...

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
BLuE_ALoNE
Üye
Mesajlar: 47
Kayıt: 26 Eki 2006 08:30

Firebirdden vazgeçmek üzereyim sırf...

Mesaj gönderen BLuE_ALoNE »

merhaba arkadaşlar. veritabanı üzerine proje geliştirmeye başladım başlayalı okulda gördüğüm paradoxtan firebirdde geçmiştim o kadar memnundum ki faydalarını saymakla bitiremem. ama gel gör ki basit syntax sorunu beni MS SQL e geçirecek peki nedir bu ben çözüm bulamadım.

kullanılan componentleri ve yapmak istediğimi sıralayayım. beni vazgeçirin geçiş yapmaktan lütfen:) çünkü ms SQL de çok yabancıyım.

Query1, cxgrid, datasource, bu bileşenlerle firebirdde tabi olmayınca MS SQL e geçeceğim.

firebirdde bir view ler oluşturacağım. ve program içerisinden kullanıcı bu view leri değiştirebileceği bir form da olacak mesela default olarak bir view şu şekilde

Select Stokkodu AS [Ürün Kodu], Stokadi AS [Ürün Adı], Miktar AS [Mevcut Stok] From STOK

doğal olarak bu tür bir syntax ı firebird desteklemiyor :(

Select Stokkodu AS UrUn_Kodu, Stokadi AS Urun_Adi, Miktar AS Mevcut_ Stok From STOK şeklinde destekliyor bu da cxgridin column captionlarını çirkin gösteriyor yada kod olarak yazmak yada başka birşey yapmama neden oluyor. tabi büyük bir proje de yada kullanıcıya böyle bir hak tanımada nasıl bir kod yazılır bilemiyorum. mesala kullanıcı ilgili View i

Select Stokkodu AS [Stok Kodu], Stokadi AS [Stok Adı], Miktar AS [Eldeki Stok] From STOK olarak değiştirdiğinde captionlarında değişmesi ne süper birşey dimi. ama firebird de olmuyorrrr.
yardımlarınızı bekliyorum.

bu arada MS SQL de veritabanına hükmetme işlemlerinde hangi bileşenleri kullanmam en sağlıklısı kısaca bilgi verirseniz çok sevinirim.

şimdiden teşekkürler...
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

Kod: Tümünü seç

Select deneme AS '[Deneme Başlığı]' 
gibi tırnak içine alsanız?
BLuE_ALoNE
Üye
Mesajlar: 47
Kayıt: 26 Eki 2006 08:30

Mesaj gönderen BLuE_ALoNE »

teşekkür ederim arkadaşım ama deneyerek yapsak daha sağlıklı bir cevap olacağı kanaatindeyim.
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,

Kod: Tümünü seç

SELECT SUP_CODE AS "Tedarikçi Kodu", SUP_TITLE AS "Tedarikçi Adı"
FROM PUB_SUPPLIER
Bu şekilde yazarsanız çalışır :)

Ayrıca Böyle yapmak daha doğru olmaz kanaatindeyim. Bunun yerine, ilgili table veya Query nesnesine, Field'ları Ekleyip, Field'ların Display Name propertylerine o field'ların görüntülenecek olan etiket adlarını yazmanız daha doğru olur.

Ayrıca, DevEx comp'ları sizin kullandığınız Query veya Table nesnenizle ilgilenmez, onun ilgilendiği TDataSet'ten türetilmiş olması yeterli olur ve sonuçta bağlantı noktası da DataSource üzerinden olduğu için sorun çıkarmaz.

Ama siz Cache'd Updates methodlar vs. kullanacaksanız, sizin onu Table ve Query nesnelerinde iyi planlamış olmanız gerekmekte.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
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 »

Bir ek daha yapayım (yani detaylandırayım)

DevEx gibi component üreticileri, normal şartlarda, DisplayLabel Property'leri ile ilgilenirler, eğer herhangi bir Field tanımı yapılmamışsa (Yani online Create oluyorsa bu Fieldlar, o zaman DisplayLabel otomatik olarak Field'ın adını alır.

Yani Siz normal olarak bir Query nesnesinin içine,

Kod: Tümünü seç

SELECT Kod, Aciklama
FROM ULKELER 
diye bir SELECT cümlesi yazdınız diyelim. Bu Query üzerinde Sağ Tık yapıp ADD ALL FIELDS deyip, Query nesnesine dönecek olan Field'ları ekleyebilirsiniz. Eklediğiniz bu Field nesnelerinin DisplayLabel'larına, Kod fieldına Ülke Kodu, Aciklama Fieldına da Ülke Adı yazabilirsiniz.

DevEx'de bunları kullanır :)

Biraz oraları araştırın göreceksiniz.

Yani Konu FireBird'de olup olmaması değil, sizin Nesneleri ve işleyişlerini doğru anlayıp kullanmanıza bağlı.

Önceki mesajda da yazdığım gibi Firebird bunu desrtekliyor, Köşeli Parantez içinde kullanım konusunda ise M$'ın uydurduğu bir yöntem olduğunu biliyorum (Yanılıyor olabi,lirim ama sadece onlarda gördüm bu Yazım Şeklini).

Senelerdir DevEx gibi bir sürü component kullandım ama bu tür bir sorunla hiç karşılaşmadım. Kaldı ki, daha yeni bitirdiğim Çok Dilli bir Finansman Projesi vardı, sizin dediğiniz gibi yapacak olursak, yani

Kod: Tümünü seç


SELECT Kod [Code], Ad [Name], Numara [Number]
FROM ULKELER

SELECT Kod [code], Ad [Name], Numara [Numero]
FROM ULKELER

gibi bir sürü dil için Queryleri sourcetan değiştirmem gerekecek vs. vs.

Neyse anlatabilmişimdir umarım.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Arkadaşın problemi VIEW konusunda FireBird'ün MS-SQL'den daha geride olmasından kaynaklanıyor. Yoksa syntax olarak aralarında yazılımcı açısından neredeyse hiç bir fark yok. Tek dikkat edilmesi gereken konu ANSI-SQL kullanmaya çalışmak.

VIEW konusunda MS-SQL'de direk SELECT cümlesi yazabiliyorsunuz. Yani:

Kod: Tümünü seç

CREATE VIEW V_URUN
AS
SELECT * FROM URUN
gibi. FireBird bunu desteklemiyor. Her iki VT için de geçerli olanı destekliyor:

Kod: Tümünü seç

CREATE VIEW V_XVCVURUN ("Ürün Kodu", "Ürün Adı", "Ürün Cinsi")
AS
SELECT URUN_KODU, ADI, CINSI FROM URUN
(Tabi SQL Dialect 3 olması gerekiyor)

Aslında FireBird 2.0'da VIEW yerine SUB SELECT queryleri var ki ne VIEW ne de Stored Procedure (çoğu yerde) kullanmaya gerek kalmıyor.

FireBird'ün yazılımcı açısından yetenek olarak MS-SQL'den aşağı olduğunu düşünmek bence çok yanlış.

İyi çalışmalar.
Cevapla