/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
ikke-obligatorisk felt
Fra : Laurits Thomsen


Dato : 11-10-05 11:26

Jeg har lavet en formular, der via en asp side tilføjer records
til en database. Jeg ønsker dog, at nogle felter er obligatoriske
at udfylde, mens andre ikke er.
Hvordan definerer jeg de ikke-obligatoriske felter?

Mvh
Laurits Thomsen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin Kaltoft (11-10-2005)
Kommentar
Fra : Martin Kaltoft


Dato : 11-10-05 13:41

> Hvordan definerer jeg de ikke-obligatoriske felter?

Tillad null værdier i databasen?

--
Med venlig hilsen

Martin Kaltoft

Laurits Thomsen (12-10-2005)
Kommentar
Fra : Laurits Thomsen


Dato : 12-10-05 06:59

> Tillad null værdier i databasen?

Der står "nej" ud for "obligatorisk" i databasevariablens
egenskaber. Da variablen har et valutaformat, kommer "tillad null
værdier" ikke frem.

Hvis man laver en formular til tabellen i access kan man godt
undlade at indtaste noget i feltet, så jeg går ud fra, at det er
asp siden der forlanger en værdi.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (12-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-10-05 14:15

Laurits Thomsen skrev:

>> Tillad null værdier i databasen?

> Der står "nej" ud for "obligatorisk" i databasevariablens
> egenskaber.

Obligatorisk svarer til "NOT NULL"


> Da variablen har et valutaformat, kommer "tillad null værdier"
> ikke frem.

Du tænker på egenskaben "Tillad Nullængde" - der *intet* har med
NULL/NOT NULL at gøre (bemærk antallet af l'er i nullængde).

Nullængde-egenskaber afgør om man i tekstfelter må indtaste værdien
"" (en tom streng).

Obligatorisk-egenskaben afgør om man i et felt (uanset type)
tillader værdien NULL.


> Hvis man laver en formular til tabellen i access kan man godt
> undlade at indtaste noget i feltet, så jeg går ud fra, at det er
> asp siden der forlanger en værdi.

Problemet er formentlig at du ikke tager højde for en manglende
værdi i din asp-kode.

Jeg gætter på at du bruger en sql-sætning a la det her:

strSQL = "INSERT INTO tabel (valufelt) VALUES (" & _
   Request.Form("valfelt") & ")"

Hvis Request.Form("valfelt") indeholder en talværdi, kan sætningen
der sendes til databasen fx se sådan ud:

   INSERT INTO tabel (valufelt) VALUES (42)

- og det er helt fint.

Men hvis man nu ikke indtaster noget i formen, bliver sql-sætningen
til:

   INSERT INTO tabel (valufelt) VALUES ()

- og det vil give en fejl. En tom værdi skal i sql angives med
NULL; derfor skal du have din kode til at erstatte en tom værdi med
"NULL":

Dim valu
valu = Request.form("valufelt") & ""

If valu = "" Then
   ' Ups, intet tal angivet, skriv null i stedet
   valu = "NULL"
End If

strSQL = "INSERT INTO tabel (valufelt) VALUES (" & valu & ")"

Det kan være lidt forvirrende at holde styr på hvornår der skal
anførselstegn om null og hvornår der ikke skal. Man skal altid
huske på hvordan koden skal ende med at se ud - og så kan man regne
baglæns for at finde ud af hvad man skal skrive for at opnå det
rette resultat. I asp-sammenhæng er sql-sætninger helt almindelige
tekststrenge - og "NULL" skal derfor stå som en tekst i if-koden
herover. Når sql-sætningen skal behandles af databasen, er NULL er
specielt ord der ikke skal i anførselstegn - derfor skal der ikke
'-er omkring NULL i sql-sætningen.

I en bedre udgave af scriptet bør man i øvrigt tjekke at værdien
også er numerisk før man putter den i sql-sætningen.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177548
Tips : 31968
Nyheder : 719565
Indlæg : 6408799
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste