Ny fejl - dml operation failed

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

Answers

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.


Moderation questions? read the FAQ