[ doomed @ 14.03.2005. 01:44 ] @
Stvarno ne znam sta je u pitanju:
Elem, MS Sql Server 2000 i razvojno okruzenje Borland C++ Builder.
Recimo, imamo jednu tabelu :
ID_prim varchar(5)
ID_FK varchar(5)
Naziv varchar(20);

ID_PRIM je Primarni kljuc. E sada Ti podaci se unose kroz DBGrid, tj direktno se unose ID_PRIM i NAZIV. I on meni mrtav hladan dozvoljava da se unese jedno blanko u ID_PRIM. Ajd mislio sam prvo da je u pitanju neka greska kod mene u Aplikaciji ali vidim da je to mirne duse upisano u tabelu a da se Server nije pobunio...... Mislim, Oracle bi se za ovaj jedan blanko pobunio....da li je ovo redovno stanje ili neki bug

Sta se to desava????

[ Simke @ 14.03.2005. 05:19 ] @
Sta podrazumevas pod "blanko"? Prazan string ("") i NULL vrednost nisu ista stvar. Ako imas PK koji je varchar, mozes da uneses prazan string, jer kao sto rekoh to nije isto sto i NULL. Inace izbegavaj da koristis varchar za PK.
[ doomed @ 14.03.2005. 12:48 ] @
Pod "blankom" podrazumevam samo jedan Space. ni prazan string ni null.
Slazem se za PK.
[ jablan @ 14.03.2005. 14:40 ] @
A što blanko ne bi trebalo da može da bude primarni ključ?
[ JogyII @ 14.03.2005. 14:55 ] @
- kao sto ti je receno varchar je vrlo los kandidat za PK
- savet za string podatke koristi nvarchar (unicode)
- jedan razmak je sasvim normalan karakter/string (za racunar je to samo jos jedan znak)
- ako bas zelis da to zabranis (string od samo razmaka u polju) mozes da napravis check constraint i da proveris dali je duzina trimovanog stringa veca od 0 (trimovanje ce izbaciti sve razmake, pa bi takav string bio duzine 0)
- ako su u pitanju null vrednosti postavi za kolinu NOT NULL