1

Konu: empty mi? isnull mu?

Selamlar;
Malumunuz SQL ile program yazmaya başladım.
Alanları kontrol ederken hem null hemde empty kontrolü yaptırıyorum biri diğerinin yerine geçmezmi?
Aralarındaki fark nedir? nelere nasıl tepki veririler.?

Bilmediğin Neyse Yanıldığındır.

2

Re: empty mi? isnull mu?

ben empty() yi veri olup olmadigi kontrolu icin kullaniyorum , null ise field rule ile alakali yani null kabul edip etmeyecegi

3

Re: empty mi? isnull mu?

null olan bir değer empty vermez. empty boş mu değil mi, null ise null mu değil mi onu verir. işi tek kontrolde bitirmek istiyorsan şöyle yapabilirsin:

?empt(nvl(adi,""))

nvl fonksiyonu bir değer eğer null ise onun yerine senin istediğin başka bir değer atar. burada karakter bir değer null ise "" at demişim.

sql ile yazarken tavsiyem yeni bir kayıt açtığında tüm değerleri 0,.f. ve "" ile doldur. yoksa bir null değeri kontrol etmediğin zaman if ile kullandığında tüm if geçersiz sonuç verir. yalnız tek problem tarihler tarihleri ctod("") ile dolduramazsın. longdate için ayrı short date için ayrı sınırlar var onların dışına çıkamıyorsun. long için en düşük 1700 lü bir yıldı, short için de 1900 lü birşey...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

4

Re: empty mi? isnull mu?

SQL ile derken SQL server degil mi? Oyle olsa da olmasa da SQL'de empty() kullanma. Data tipine gore empty() ne ise onu kullan. Ornegin:
(VFP SQL)

where isim == "" and iskonto = 0 and tarih between {} and date()

(SQL server)
isim = ""
iskonto = 0
baslangic = {}
bitis = date()
where isim = ?m.isim and iskonto = m.iskonto and tarih between ?m.Baslangic and ?m.Bitis

SQL server'da tarih (tarihvesaat) icin 'empty' kavrami yok. Empty gonderdiginde baz tarihsaat olan 1/1/1900 00:00:00 demis oluyorsun.


SQL server'da tarih ile ilgili alanlarin null kabul etsin ya da default degeri olsun. Bunu yapmazsan bos gonderdiklerini geriye 1/1/1900 olarak alirsin ve o gercek 1/1/1900'mu yoksa bos mu ayrt edemezsin (uygulama da hesap hatalarina yol acabilir ya da tamamen kabul edilebilir - uygulamaya bagli).