Avatar billede mikkeltheman Nybegynder
03. februar 2011 - 12:00 Der er 14 kommentarer og
1 løsning

Hvad er Allow Nulls?

Hej jeg opretter database

Primary Key-LoginId - Int-is identidy -yes

Username-Varchar(50)

Password-Varchar (50)



Men på hver kollone er der et sted hvor man kan sætte hak som hedder AlLow Nulls, skal jeg sætte hak til dem? eller er det lige meget?? og hvad bruges det til??
03. februar 2011 - 12:13 #1
Det betyder simpelthen om et felt maa vaere tomt, om det kan tillades at mangle en vaerdi.  For en tabel med login kan hverken Username eller Password naturligvis vaere tomme.  Men hvis du ogsaa havde en kolonne med foedselsdag burde den nok vaere AllowNulls, for ellers kan du ikke indfoere en bruger hvis du ikke kender foedselsdagen.
03. februar 2011 - 12:15 #2
Hvis, paa den anden side, det ikke var en login tabel men en foedselsdagskalender saa er sagen naturligvis anderledes, foeselsdagen er vaesenlig for at det kan fungee, og i det tilfaelde kan foedselsdagen ikke vaere AllowNulls.
Avatar billede mikkeltheman Nybegynder
03. februar 2011 - 12:45 #3
Så Vis jeg sætter et hak til Allow Nulls Betyder det at den ikke må være tom og skal udfyldes forstår jeg rigtigt?? Er det så bare ikke bedst at bruge den over det hele istedet for at den er tom?
Avatar billede mesteren_selv Nybegynder
03. februar 2011 - 12:52 #4
Omvendt.. Hvis du sætter hak i AllowNulls vil du tillade en null-værdi (hvilket betyder ingenting)..

-Mesteren
Avatar billede mikkeltheman Nybegynder
03. februar 2011 - 13:01 #5
Ok Allow Nulls giver lov til at lade feltet være tomt. Vil i så anbefale at jeg ikke bruger det?  så undlader jeg bare at sætte et hak i . Så er jeg sikker på at alle udfylder felterne hvilket SKAL gøres.??
Avatar billede mesteren_selv Nybegynder
03. februar 2011 - 13:23 #6
Hvis du ikke sætter hak i vil den indsætte en form for standard værdi, alt efter datatype, hvis ikke den får en af brugeren.. F.eks. hvis du har et felt der hedder alder, som brugeren ikke udfylder, vil AllowNulls indsætte værdien null (ingenting) og ellers vil den indsætte tal-værdien 0.

Hvis du vil tvinge brugeren til at udfylde et felt skal du gøre det i din form. Som udgangspunkt ville jeg sætte det på alt undtagen din Primary Key, da det gør det nemmere at teste hvor vidt feltet har en værdi.

Hvad arbejder du i af program?
Avatar billede mikkeltheman Nybegynder
03. februar 2011 - 13:33 #7
Visual Studio Enterprise , Sql Server 2008 R2.  C# .NET


Ok så sætter jeg Allow Nulls til på alle undtager primary key også kan jeg tvinge brugeren til at udfylde den på formen:-)
Avatar billede platik Nybegynder
03. februar 2011 - 15:00 #8
Blot lidt info. Er ikke for at svare på dit spørgsmål.

Hvis Allow null ikke er sat skulle den ikke selv sætte en standart værdig. Derimod skulle du gerne få en exeption/en fejl.

For at den sætter en standart værdig skal default sættes til en værdig på din column.

Jeg vil bestemt anbefale du sætter den til ikke at må kunne tage nulls. Det vil ikke give nogen mening hvis null alligevel skulle havne i dine database felter.

Validering af felter som er påtvunget bør ske inden du forsøger at indsætte i databasen.
Avatar billede mikkeltheman Nybegynder
03. februar 2011 - 14:57 #9
Sender du et svar så du kan blive udstyret med cyber points hehe
Avatar billede mesteren_selv Nybegynder
03. februar 2011 - 15:17 #10
Årh, det er sandt, man skal selv sætte en default.. My Bad!

Men jeg mener at hvis du har testet for om felterne er udfyldt inden du sætter ind i databasen, kan du efterfølgende teste for en null-værdi for at være sikker på at det er indsat korrekt..

Mens du arbejder er det jo nok selvfølgelig at foretrække hvis programmet giver dig en exeption når intet er udfyldt, men kunne forestille mig at det gav problemer hvis den gav exeptions i brug.. Der ville jeg nok personligt foretrække selv at teste for null-værdier og informere brugeren hvis noget var gået skævt..
06. februar 2011 - 14:46 #11
Hvad saa, mikkeltheman, konkluderer du spoergsmaalet?  Du bad for tre dage siden i #8 om et svar for points.  Det kom ikke, saa vejen frem maa vel vaere at du selv opretter og accepterer svaret for at faa traaden afsluttet.

Et tilbageblik: Dit spoergsmaal gik paa mssq og Null.  Den database vi brugte paa skolen, og vist nok 'store' databasesystemer som Oracle vil ikke tillade at der ikke indfoeres vaerdier i en kolonne der er NOT NULL, og det svarede jeg ud fra.  Jeg var ikke opmaerksom paa at Mysql og velsagtens MSSQL (som jeg ikke har) er mere tolerante og indsaetter en default vaerdi, saa mit svar var forkert.  Det laerte jeg ved.

Men med mindre du forventer flere svar kan jeg saa bede dig lukke spoergsmaalet, for god ordens skyld og saa det ikke bliver staaende som aabent i min (og andres) liste af indlaeg?
Avatar billede mesteren_selv Nybegynder
09. februar 2011 - 10:37 #12
Hvis du mener at det er på din plads skal jeg ikke takke nej til point.. Synes dog ikke at jeg skal have dem allesammen, da platik kom med en mere fyldestgørende forklaring..

-Mesteren
11. februar 2011 - 10:12 #13
mikkeltheman, maa jeg spoerge hvad dine planer er med hensyn til denne traad?  Du fik et svar som du bad om saa du kan lukke spoergsmaalet (for god ordens skyld og saa det ikke laengere staar som aabent i min og andres liste af indlaeg.)  Eller har du andre planer?
Avatar billede mikkeltheman Nybegynder
23. maj 2011 - 18:16 #14
Jeg har jo lukket trådet ved at acceptere et svar Christian!!!!
23. maj 2011 - 21:21 #15
Ja, du lukkede traaden efter at jeg havde lavet mit indlaeg #13, og velsagtens som resultlat af indlaeg #13.

Hvordan kommer du pludselig i tanker om det nu godt tre maaneder efter? !!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester