/ 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
Tilladnullængde i datatypen tal
Fra : Thomas K


Dato : 28-03-05 22:09

Jeg sidder og opdatere min database med update sætningen. Her har
jeg nogle form felter, som nogle gange ikke bliver udfyldt.
Indføre jeg ikke noget i et felt af datatypen tekst, er der ingen
problemer da jeg anvender tilladnullængde=ja. Men er datatypen
tal, kommer der fejl hvis feltet ikke udfyldes. Ved datatypen tal
findes der ikke funktionen tilladnullængde, så hvorledes angiver
man her at feltet ikke behøves at udfyldes?

--
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~ (28-03-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 28-03-05 22:27

Thomas K skrev:

> Ved datatypen tal findes der ikke funktionen tilladnullængde,
> så hvorledes angiver man her at feltet ikke behøves at
> udfyldes?

Den egenskab der angiver om et felt må stå tomt eller ej hedder i
Access-terminologi "Obligatorisk" (eller "Required" i engelske
udgaver") - og den findes for alle felttyper.

Men det er formentlig ikke her dit problem ligger. Problemet er
oftere at du i din sql-sætning ikke tager højde for at der måske
mangler en værdi.

Hvis du kører en sql-sætning som følger:

   UPDATE tabelnavn SET talfelt = WHERE idfelt = 42

- vil det gå galt. Der mangler noget fornuftigt efter det første
lighedstegn.

Det giver sjældent problemer med tekstfelter, fordi man putter
anførselstegnene uden om asp-værdien:

UPDATE tabelnavn SET tekstfelt = '' WHERE idfelt = 42

- giver ikke problemer, fordi '' (den tomme streng) også er en
værdi (det kan så give problemer med tilladnullængde, men dem har
du ordnet).

Du kan løse dit problem med talfelter på to måder. Enten ved at
pille feltnavn og lighedstegn ud af opdateringssætningen eller også
ved at bruge specialværdien NULL (uden anførselstegn). Bemærk at
det ikke nødvendigvis giver samme resultat - hvis man udelader
feltnavnet, vil den eksisterende værdi blive stående i feltet. Hvis
man skriver NULL som værdi, vil den eksisterende værdi blive
slettet (og erstattet med NULL-værdien).

Eksempler:

UPDATE tabel SET tekstfelt = '' WHERE idfelt = 42
(talfelt er ikke nævnt, og værdien står dermed urørt)

UPDATE tabel SET tekstfelt = '', talfelt = NULL WHERE idfelt = 42
(talfelt sættes til NULL ~ blank værdi)
--
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

Thomas K (29-03-2005)
Kommentar
Fra : Thomas K


Dato : 29-03-05 20:01

> Eksempler:
>
> UPDATE tabel SET tekstfelt = '' WHERE idfelt = 42
> (talfelt er ikke nævnt, og værdien står dermed urørt)
>
> UPDATE tabel SET tekstfelt = '', talfelt = NULL WHERE idfelt = 42
> (talfelt sættes til NULL ~ blank værdi)

Takker for dine eksempler, men jeg har lidt svært ved at
implementere det i min egen update sætning. Kan ikke helt hitte ud
af hvorledes det burde se ud når jeg anvender request.form
funktionen:

strSQL = "Update film set cd='" & Request.Form("cd") & "' where ID=
" & Request.form("ID")

--
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

Niels Henriksen (29-03-2005)
Kommentar
Fra : Niels Henriksen


Dato : 29-03-05 22:23

"Thomas K" <kiellerup@tdcadsl.dk> wrote in message
news:4249a5e3$0$245$14726298@news.sunsite.dk...
>
> strSQL = "Update film set cd='" & Request.Form("cd") & "' where ID=
> " & Request.form("ID")
>
Hvis du vil sikre dig at sikkerheden er i top, så bør du validere dine
request's først. Hvad vil du gøre hvis cd indeholder '?

--
Niels Henriksen
www.netopcom.dk
Webhosting: 100 MB for 8 kr/mdr incl. moms



Jens Gyldenkærne Cla~ (29-03-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 29-03-05 22:01

Thomas K skrev:

> Takker for dine eksempler, men jeg har lidt svært ved at
> implementere det i min egen update sætning. Kan ikke helt
> hitte ud af hvorledes det burde se ud når jeg anvender
> request.form funktionen:

Hvordan ser den sql-sætning der fejler ud? (udskriv den hvis den
fejler med response.write).

> strSQL = "Update film set cd='" & Request.Form("cd") & "'
> where ID= " & Request.form("ID")

At dømme efter dine anførselstegn her er cd-feltet et tekstfelt -
og dermed ikke omfattet af problemet.

ID-feltet er et talfelt, men det skal jo altid være der - ellers
opdaterer du hele tabellen.
--
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

Thomas K (30-03-2005)
Kommentar
Fra : Thomas K


Dato : 30-03-05 15:46

Jens Gyldenkærne Clausen skrev:

> strSQL = "Update film set cd='" & Request.Form("cd") & "'
> where ID= " & Request.form("ID")

> At dømme efter dine anførselstegn her er cd-feltet et tekstfelt -
> og dermed ikke omfattet af problemet.

Jo, det er nok netop request.form feltet som jeg laver ukorrekt med
anførelses tegn. Det er i databasen et tal felt, men kan ikke hitte
ud af hvorledes jeg skal indføre det når det er tal og ikke tekst.

Niels Henriksen skrev:

> Hvis du vil sikre dig at sikkerheden er i top, så bør du validere
dine
> request's først. Hvad vil du gøre hvis cd indeholder '?

Ovenstående er bare et eksempel som jeg har lavet på en prøve side.
Dvs. ikke den færdige del...

--
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~ (30-03-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 30-03-05 21:06

Thomas K skrev:

>> At dømme efter dine anførselstegn her er cd-feltet et
>> tekstfelt - og dermed ikke omfattet af problemet.
>
> Jo, det er nok netop request.form feltet

Hvad mener du med "request.form feltet"?

I den sql-sætning du gengav har du to felter i spil fra databasen:
cd og ID. Værdierne hertil henter du via Request.Form fra to felter
i din form med samme navne.

Altså - hvilken type har databasefeltet cd?
Hvilken type har databasefeltet ID?


> Niels Henriksen skrev:

Teknisk note: Det er normalt en dårlig ide at samle citater fra
forskellige indlæg i et enkelt svar. Svar hellere direkte på de
indlæg du kommenterer - det gør det lettere at overskue mht.
trådning og citatmarkering.
--
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 : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste