Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
firebird 3 hakkında sorular
#1
Merhaba,
1)firebird 3 e bir göz atayım dedim Identity Column u gördüm bu artık generator kullanmamıza gerek kalmayacağı anlamına mı geliyor?
2)tutar girilecek bir numeric alan tanımlarken tipi numeric size 15 scale 6 yeterlimidir genelde muhasebe işlerinde daha fazla hasasiyet gerektiren durumlarınız oldumu?
3) blob alan tanımlarken subtype TEXT ve binary mevcut farkları nedir birde binary seçip size 80 dediğimiz de buradaki 80 ne yapıyor?
4) varchar bir alan tanımlarken charset utf8 collate olarak ta UCS_BASIC,UNICODE,UNICODE_CI,UNICODE_CI_AI ve UTF8 var bunların arasında ki fark nedir?

“Do. Or do not. There is no try.”
Cevapla
#2
Selamlar,

1. Evet, hatta ileride sanırım GENERATOR'u kaldıracaklar.
2. Ben genelde 18,2 şeklinde kullanırım bu senin yapacağın uygulamadaki hassasiyetine bağlı bir konu. Döviz işlemleri olacak ise bence 18,5 filan yapmakta fayda var. Çünkü TR'de Döviz için virgülden sonra 5 hassasiyet kullanılıyor.
3. Emin olmamakla birlikte TEXT dediğinde Unicode ile beraber saklıyor olabilir. Eğer binary seçersen doğrudan aldığı byte'ları byte byte saklıyordur. Diğerinde her karakter için Unicode da koyuyordur.
4. Benim de detayını araştırmam lazım, ben klasik WIN1254 ve PXWTURK kullanıyorum. Şimdiye kadar bir sorun ile karşılaşmadım. CI ve AS'nin açılımlarını söyleyeyim Case Insensitive, Accent Insensitive demek, CS ve AS'de Case Sensitive ve Accent Sensitive olarak geçer.

Kolay Gelsin
Cevapla
#3
(03-06-2018, Saat: 19:23)Kuri_YJ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelamlar,

1. Evet, hatta ileride sanırım GENERATOR'u kaldıracaklar.
2. Ben genelde 18,2 şeklinde kullanırım bu senin yapacağın uygulamadaki hassasiyetine bağlı bir konu. Döviz işlemleri olacak ise bence 18,5 filan yapmakta fayda var. Çünkü TR'de Döviz için virgülden sonra 5 hassasiyet kullanılıyor.
3. Emin olmamakla birlikte TEXT dediğinde Unicode ile beraber saklıyor olabilir. Eğer binary seçersen doğrudan aldığı byte'ları byte byte saklıyordur. Diğerinde her karakter için Unicode da koyuyordur.
4. Benim de detayını araştırmam lazım, ben klasik WIN1254 ve PXWTURK kullanıyorum. Şimdiye kadar bir sorun ile karşılaşmadım. CI ve AS'nin açılımlarını söyleyeyim Case Insensitive, Accent Insensitive demek, CS ve AS'de Case Sensitive ve Accent Sensitive olarak geçer.

Kolay Gelsin

Generatör oluşturunca firedac query için: updateoptions->autoincfields,generatorname ve key fields seçiyoruz. Tabloda Autoinc olacak id alanımınızı identity true yaptığımızda, delphi tarafında nasıl bir ayar yapmamız gerekiyor?
Cevapla
#4
Selamlar,

Firedac'ta kullanmadım ama normal IBX Bileşenlerinde bir Query'e Generator Field (Autoinc) olarak tanımlayıp, Database üzerinde kullanılacak olan GENERATOR'ü seçtiğinizde otomatik olarak kayıt INSERT aşamalarında kendisi artırmayı yapıyor. Muhtemelen FireDAC için de benzer mantık geçerlidir.

Kolay Gelsin
Cevapla
#5
autoincfields ozelligini kullanmaya calistigimi ve istedigim sonucu alamadigimi hatirliyorum yillar once. kaydi insert ettigimde tablou acip kapatmadan generator tarafindan olusan id degerini alamamistim. bu nedenle de insert sqllerinin sonuna returning id ifadesini yazarak bu sorunu asmistim ve yillardir bu sekilde kullanmaya devam ediyorum. aradan gecen sure icerisinde autoincfields ozelliginde ki bu sorun cozuldu mu bilemiyorum.
WWW
Cevapla
#6
(03-06-2018, Saat: 19:23)Kuri_YJ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelamlar,

1. Evet, hatta ileride sanırım GENERATOR'u kaldıracaklar.
2. Ben genelde 18,2 şeklinde kullanırım bu senin yapacağın uygulamadaki hassasiyetine bağlı bir konu. Döviz işlemleri olacak ise bence 18,5 filan yapmakta fayda var. Çünkü TR'de Döviz için virgülden sonra 5 hassasiyet kullanılıyor.
3. Emin olmamakla birlikte TEXT dediğinde Unicode ile beraber saklıyor olabilir. Eğer binary seçersen doğrudan aldığı byte'ları byte byte saklıyordur. Diğerinde her karakter için Unicode da koyuyordur.
4. Benim de detayını araştırmam lazım, ben klasik WIN1254 ve PXWTURK kullanıyorum. Şimdiye kadar bir sorun ile karşılaşmadım. CI ve AS'nin açılımlarını söyleyeyim Case Insensitive, Accent Insensitive demek, CS ve AS'de Case Sensitive ve Accent Sensitive olarak geçer.

Kolay Gelsin

Firebird'deki Generator, Oracle'daki Sequence'in sanırım karşılığı ve tasarım aynıysa bunun kaldırılması çok uygun olmayabilir, zira bunun bir takım esneklikleri mevcut. Bir sequence'e cache değer verip, her seferinde değil belirttiğiniz sayıda bir yeni sayı üretmesi gibi. Bu ciddi anlamda IO azaltacak bir işlem ama bunu yeni yapıya da implemente edebilir. Bazı durumlarda ise birden fazla tablo için aynı numaratör kullanımı gerekiyor, bu durum da implemente edilebilir ama işi daha karmaşık hale de getirebilir. Şu an tüm senaryolar aklıma gelmeyebilir ama Sequence/Generator yapısının ben esnek bir yapı olduğunu ve kolay kolay kalkmayacağını düşünüyorum.
Cevapla
#7
Selamlar,

GENERATOR'ün kaldırılacağı yönündeki söylediğim yanlış anlaşılmasın, GENERATOR'den SEQUENCE'e doğru hareket ediyorlar Smile Sadece syntax'ı desteklemek için. Yoksa hem SEQUENCE hem de GENERATOR aynı amaca hizmet etmektedir ve her ikisi de kullanılabilir.
Cevapla
#8
(04-06-2018, Saat: 08:44)Kuri_YJ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelamlar,

Firedac'ta kullanmadım ama normal IBX Bileşenlerinde bir Query'e Generator Field (Autoinc) olarak tanımlayıp, Database üzerinde kullanılacak olan GENERATOR'ü seçtiğinizde otomatik olarak kayıt INSERT aşamalarında kendisi artırmayı yapıyor. Muhtemelen FireDAC için de benzer mantık geçerlidir.

Kolay Gelsin

Alanı idendity olarak ayarlayınca (görünen) generatör oluşmuyor. Delphi tarafında da querynin genaratör seçme alanında ilgili tablonun generatörü çıkmıyor. Maalesef nasıl olacağını çözemediğimden her tablo için genaratör oluşturmaya devam ediyorum.
Cevapla
#9
Selamlar,

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Bu videoda gösteriyor nasıl yapılacağını. Orada hem GENERATOR alanı gösteriyor, ayrıca FIELD'ları Query'e ekledikten sonra FIELD'ın kendine AutoInc olarak definition veriyor. ObjectInspector'de.

Buna göre denerseniz olacaktır sanırım.

Kolay Gelsin

Tekrar Selamlar,

Aşağıdaki dokumanda da FireDAC'taki AutoIncremental fieldlar ile ilgili geniş bilgi yer alıyor.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kolay Gelsin
Cevapla
#10
(06-06-2018, Saat: 08:35)Kuri_YJ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSelamlar,

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Bu videoda gösteriyor nasıl yapılacağını. Orada hem GENERATOR alanı gösteriyor, ayrıca FIELD'ları Query'e ekledikten sonra FIELD'ın kendine AutoInc olarak definition veriyor. ObjectInspector'de.

Buna göre denerseniz olacaktır sanırım.

Kolay Gelsin

Tekrar Selamlar,

Aşağıdaki dokumanda da FireDAC'taki AutoIncremental fieldlar ile ilgili geniş bilgi yer alıyor.

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kolay Gelsin
Öncelikle ilgilendiğiniz ve cevap verdiğiniz teşekkür ederim.
Daha önce id alanını identity olarak ayarladığımda, query'den kayıt sonrasında id değerini alamamıştım. Bu nedenle de generatör oluşturuyordum. Şimdi denedim id değerini alabiliyorum.
Query id alanında yaptığım değişiklikler:
DataType = ftAutoInc
Required = False;
ReadOnly = True;
ProviderFlags = [pfInWhere]
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Yeni Başlayanlar İçin Firebird Kurulumu ve Delphi FireDAC Ayarları DelphiCanR 18 2.358 12-09-2018, Saat: 11:54
Son Yorum: rmzgenius
  Firebird Pivot Sorgu klavye 6 1.120 14-08-2018, Saat: 22:39
Son Yorum: anemos
  FireBird Merge Into Kullanımı mcuyan 2 185 13-08-2018, Saat: 12:40
Son Yorum: mcuyan
  Firebird After xx Trigger mcuyan 5 244 05-08-2018, Saat: 15:43
Son Yorum: mcuyan
  Firebird de Enter karakter sorunu çözümü mcuyan 2 215 01-07-2018, Saat: 14:31
Son Yorum: klavye



Konuyu Okuyanlar: 1 Ziyaretçi