Avatar billede n1 Nybegynder
09. november 2003 - 17:27 Der er 11 kommentarer og
1 løsning

må max deltage en gan pr. tlf. nr!

Hvordan kan jeg lave en begrænsning så man kun kan skrive i databasen en gang pr. tlf. nr?
koden sersådan ud:

<%

dim write

set conn = server.createobject("ADODB.connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= " &server.mappath("../fpdb/db.mdb")


set write = server.createobject("ADODB.recordset")
wSQL ="SELECT * FROM db"
write.CursorType = 2
write.LockType = 3
write.open wSQL, conn

write.AddNew

write.fields("Navn") = request.form("Navn")
write.fields("Adr") = request.form("Adr")
write.fields("Mail") = request.form("Mail")
write.fields("Tlf") = request.form("Tlf")
write.fields("By") = request.form("By")
write.fields("sv1") = request.form("sv1")
write.fields("sv2") = request.form("sv2")
write.fields("sv3") = request.form("sv3")

write.Update

write.close
set write = Nothing
conn.close
set conn = Nothing

Response.Redirect "tak.htm"
%>
Avatar billede thesurfer Nybegynder
09. november 2003 - 17:33 #1
strSQL = "select top 1 from TABELNAVN where Tlf = " & request.form("Tlf") & "
' åben forbindelsen

if (not rs.bof) and (not rs.eof) then
' nummeret er fundet -> tlfnr har deltaget før
response.write "Du må kun deltage 1 gang!"
else
' nummeret eksisterer ikke i database..
' udfør noget kode..
end if
Avatar billede n1 Nybegynder
09. november 2003 - 17:39 #2
kan du ikke sætte det ind i koden ovenfor? tabelen hedder bare "db"
Avatar billede thesurfer Nybegynder
09. november 2003 - 17:49 #3
wSQL = "select top 1 from db where Tlf = " & request.form("Tlf")
write.CursorType = 2
write.LockType = 3
write.open wSQL, conn

if (not write.bof) and (not write.eof) then

  ' nummeret er fundet -> tlfnr har deltaget før
  response.write "Du må kun deltage 1 gang!"

else

  write.AddNew
  write.fields("Navn") = request.form("Navn")
  write.fields("Adr") = request.form("Adr")
  write.fields("Mail") = request.form("Mail")
  write.fields("Tlf") = request.form("Tlf")
  write.fields("By") = request.form("By")
  write.fields("sv1") = request.form("sv1")
  write.fields("sv2") = request.form("sv2")
  write.fields("sv3") = request.form("sv3")
  write.Update

end if

Hvis den melder fejl ved Tlf i wSQL, er det sikker fordi der skal stå:

where Tlf = '" & request.form("Tlf") & "'"

Men det tror jeg ikke da indholdet af Tlf er af typen tal.
Avatar billede c Nybegynder
09. november 2003 - 19:23 #4
Det er meget nemt...
I databasen, under design, sætter du "indekseret" til at være "Ja - ingen dubletter", for feltet Tlf.
Avatar billede n1 Nybegynder
09. november 2003 - 21:00 #5
hvordan kan jeg så gøre sådan at man bliver smidt hen på en anden side når man får fejlmælding?
Avatar billede bugger Nybegynder
09. november 2003 - 22:51 #6
Jeg lytter lige med på om c gir et svar :-)
Avatar billede netro Nybegynder
10. november 2003 - 07:47 #7
c -> Det er jo ikke ligefrem optimalt at give brugeren en fejlmeddelelse om, at der er fejl i linie 628, fordi kolonnen ikke tillader dubletter.

Du skal benytte både thesurfer's og c's svar.
Avatar billede n1 Nybegynder
10. november 2003 - 09:17 #8
det virker bare ikke med thesurfer's svar, fordi så virker scriptet overhovedet ikke!
Avatar billede netro Nybegynder
10. november 2003 - 17:15 #9
Ja, prøv at rette til:

wSQL = "select top 1 * from db where Tlf = " & request.form("Tlf")
Avatar billede c Nybegynder
10. november 2003 - 18:04 #10
on error kunne du jo bruge
Avatar billede n1 Nybegynder
10. november 2003 - 18:21 #11
hvor dan skal jeg skrive en "on error" kommando hvis den skal udføre: Response.Redirect "fejl.htm" ?
Avatar billede n1 Nybegynder
10. november 2003 - 18:45 #12
har løst det!
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
Kurser inden for grundlæggende programmering

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