"VT'de uzun string tanımlama?"+"unique alanda

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
Kullanıcı avatarı
huseyinkucuk
Üye
Mesajlar: 142
Kayıt: 29 Nis 2005 10:03
Konum: İstanbul
İletişim:

"VT'de uzun string tanımlama?"+"unique alanda

Mesaj gönderen huseyinkucuk »

Arkadaşlar merhaba...
Muhtemelen forumda vardır ama uzunca aramama rağmen bulamadım :oops:

Kısa bir süre önce FireBird öğrenmeye başladım... Fakat fazla üzerinde duramadım. Soracağım soru acemice olucak sanırım :roll:

1. sorum: 255 karakterden çok daha fazlasını hangi alan tipiyle kaydedebiliyoruz? (ürünlerle, satıcılarla ilgili açık uçlu bilgi yazabilmek için (1000-1500 karakteri bile bulabilir) (Blob tipi olur diye yorumladım okuduklarımdan ama o da 255 karakterden fazlası olmaz dedi delphide)
(IBDataSet1.FieldByName('ALICI_BILGISI').AsString:='C:\kara kara kartallar karlı iyi tarlalara kanat kırarlar. ali ile veli bir gün kalkmışlar gitmişler.... olmuş bitmiş') şeklinde 255 karakterden çok çok uzun bişey yazdım, 255 karakterden çok olmaz dedi. AsString yazdığımdan ötürü dediğini sanıyorum, peki nasıl yaparım?

2. sorum: VERGI_NUMARASI alanı var. Aynı numara girilmesin diye unique index olarak tanımladım. Fakat bu alan isteğe bağlı olarak girilecek, yani kullanıcı istemezse bu alana hiç bişey girmicek. Ama iki tane null veya '' alan olunca unique olduğu için 'olmaz' diyo. Nasıl aşarız bunu?

Arkadaşlar, yardımlarınızı bekliyorum. Hepinize kolay gelsin...
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

varchar(1000) şeklinde tanımlayabilirsin. varchar

eğer çok uzun bir metin ise Blob subtype text olarak tanımlayabilirsin. sınır yok gibi bir şey.. size 80 sınır değil. forumda daha önce konuşulmuştu..

fb den alıntı
VARCHAR: Variable-length non-Unicode data with a maximum of 8,000 characters.
BLOB SUB_TYPE TEXT:Variable-length non-Unicode data with a maximum length of 231 - 1 (2,147,483,647) characters


bu sınırlar baya iyi...
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
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,

2. Sorunuza yanıt olarak da, BEFORE INSERT/UPDATE TRIGGER'ını kullanabilirsiniz. Unique Index işinizi görmez.

BEFORE INSERT TRIGGER'ı yazarsınız bir tane INSERT veya UPDATE yapılırken, kendinden başka aynı numaraya sahip bir kayıt var mı diye sorgularsınız, eğer varsai hata verdirirsiniz. Yoksa kaydedilmesine izin verirsiniz.

Tabi bu iş için Trigger'ları bilmeniz ve anlamanız lazım bu sebeple Tavsiye edeceğim şey, Seminerleri izlemeniz olacak. Seminer 8 Fahrettin'in semineri. Orada güzel örneklerle anlatılmıştı.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
huseyinkucuk
Üye
Mesajlar: 142
Kayıt: 29 Nis 2005 10:03
Konum: İstanbul
İletişim:

Mesaj gönderen huseyinkucuk »

Kadir hocam, çok teşekkür ederim... Aynen dediğin gibi yaptım, oldu...
Kuri_YJ hocam, size de çok teşekkür ederim. 8. semineri indirdim, uygulamadan önce bi izleyim diyorum...
Çok teşekkürler, Allah razı olsun, hepinize kolay gelsin...
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
Cevapla