webForumDet fria alternativet

Inte kunna reloda på en sida där man....

ASP

8 svar · 187 visningar · startad av Method

Medlem sedan apr. 2001357 inlägg
Frågan#1

Jag undrar hur man skall göra för att inte kunna reloda på en sida där man skriver till databasen så att det blir flera poster av samma??

Tack på förhand

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

Medlem sedan dec. 19996 721 inlägg
#2

Reloada kan man alltid göra, så antingen får du fixa en funktion som gör att databasen inte tar emot en exakt likadan insert två gånger, eller så får du låta sidan som lägger in saker i databasen redirecta till en annan sida.

Medlem sedan maj 2001178 inlägg
#3

hur hindrar man db att lägga till samma post 2 ggr ?

------------------
/MaRseY

Medlem sedan dec. 200012 464 inlägg
#4

Du kan definiera att vissa kolumner i en tabell bara får innehålla unika värden.

Antingen genom att definiera en primary key eller ett unique constraint. (Det går bara att ha en primary key per tabell men man kan ha flera unique constraint.)

create table x (name varchar(10), adress varchar(30), constraint pk primary key(name))
'eller
create table x(name varchar(10),
adress varchar(30),constraint uk unique(name))

Det går också att lägga till detta i efterhand med alter table.

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 2001357 inlägg
#5

Har nån lusta att förklara LarsG ex. lite närmare fattar inte riktigt??

Tack på förhand

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

Medlem sedan okt. 2001127 inlägg
#6

Kan nån vara snäll att förklara för jag har samma problem... please :)

men är det bättre att reloda till en ny sida och hämta inlägget från databasen och presentera det för "postören" ;)

i.o.f är det bättre i mitt fall att inte reloda vidare :OO

------------------
Varje dag är en ny lektion ;)

[Redigerat av LearningASP den 15 okt 2001]

Medlem sedan sep. 200145 inlägg
#7

Jag kör uppdateringen på en sida, när posten är inlagd redirectar jag till sidan som visar poster igen.

** input.asp **
<form action="update.asp" action="post">
<input type="text" name="posten">
<imput type="submit" value="ok">
</form>

** update.asp **
' här uppdateras databasen
response.redirect("visa_poster.asp")

Om användaren uppdaterar nu händer ju inget annat än att posterna visas igen!

.typ!

------------------

* Mattias

Medlem sedan apr. 2001357 inlägg
#8

Jag vill helst inte skicka vidare utan skulle gärna få en liten förklaring på LarsG exempel... ;)

Tack på förhand

------------------
--------------
STARZINGER
Tackar & Bockar forumet rockar!
Med ett hugg faller inget träd

Medlem sedan dec. 200012 464 inlägg
#9

Det som händer om man definierar tabellen så som jag skrev och sedan försöker stoppa in en post med samma värde så kommer man att få ett fel från databashanteraren.
Ett sådant eventuellt fel måste man hantera i koden.

Alternativt så kan man lägga till kod för att kontrollera om ett värde finns i samband med att man lagrar data. (En sådan lösning fungerar för det mesta, men känns onödig då det finns funktioner för detta i DBMS och eventuella fel måste man i alla fall ta hand om. (Även om det är ett av de mest eftersatta områdena, om man tittar på de skript som postas här ;) .))

(Om man inte vill skriva SQL för att definiera sina tabeller så finns det oftast något grafiskt tjillemuck där man kan klicka för att definiera primärnycklar eller unikhet.)

------------------
essentitia preter non sans multiplicandum

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)