Ny fejl - dml operation failedgreenspun.com : LUSENET : WebdesignII : One Thread |
Hej.Får flg. fejl når jeg prøver at oprette et nyt projekt med en titel, der allerede findes:
Database operation "dml" failed (exception ORA, "ora8.c:1207:ora_exec: error in `OCIStmtExecute ()': ORA-00001: unique constraint (MPJ.SYS_C0048467) violated
SQL: insert into projekter (titel, tekst, navn, email, password) values ('Community-site', 'jsdfkjsdkjfsdkfl', 'margit', 'mpj@it-c.dk', 'muk')") while executing "ns_db dml $db $query " (file "/web/mpj/www/oevelse8/nyt.tcl" line 37) invoked from within "source $file"
Min fil ser sådan her ud: set db [ns_db gethandle]
if {![info exists titel] || [string compare $titel ""] == 0} { ns_return 200 text/html [home_page "Ugyldig titel" "Ugyldig titel - gå tilbage og prøv igen"] return }
if {![info exists navn] || [string compare $navn ""] == 0} { ns_return 200 text/html [home_page "Ugyldigt navn" "Ugyldigt navn - gå tilbage og prøv igen"] return }
if {![info exists email] || ![regexp {^[a-zA-Z]+[a-zA-Z0-9_\-]*[@][a-zA-Z0-9_\-]+[\.][a-zA-Z0-9_\-\.]+$} $email]} { ns_return 200 text/html [home_page "Ugyldig email" "Ugyldig email - gå tilbage og prøv igen"] return }
if { ![info exists password] || [string compare $password ""] == 0} { ns_return 200 text/html [home_page "Forkert password" "Det indtastede password er forkert - gå tilbage og indtast det rigtige password."] return }
if {![info exists tekst] || [string compare $tekst ""] == 0} { ns_return 200 text/html [home_page "Ugyldig beskrivelse" "Ugyldig beskrivelse - gå tilbage og prøv igen"] return }
set query "insert into projekter (titel, tekst, navn, email, password) values ('$QQtitel', '$QQtekst', '$QQnavn', '$QQemail', '$QQpassword')"
ns_db dml $db $query
ns_returnredirect "http://hug.it-c.dk:8215/oevelse8/redirect1.tcl"
Mvh. igenigen :-)
-- Margit Perlt Jensen (mpj@it-c.dk), October 30, 2001
Hejsa,du bør indsætte en catch omkring din
ns_db sml $db $query
kommando, således at du kan fange fejlen og returnere en fejlside til brugeren om at titlen allerede findes.
-- Niels Hallenberg (nh@itu.dk), October 30, 2001.