probably you need from pyodbc import IntegrityError
do not import it from psycopg since that is a different exception than the one thrown by mssql Massimo On Jan 29, 2:38 pm, NetHead <tbnethe...@yahoo.com> wrote: > Hello Massimo! > > Thank you for your reply. > > To clarify.... > > SQL Server is properly detecting a duplicate value when it is > entered. It's Web2py's behavior when this > error is detected that I'm trying to change. > > If you look at my original post again, I'm getting the error > "NameError: global name 'IntegrityError' is not defined" when > Web2py hits the exception code in my "try:" block. In my exception > block I'm explicitly trying to catch > the integrity error by stating: "except IntegrityError:" > > If I simply remove the string 'IntegrityError' from that line of code, > the flash message works. But.... I don't want to display my custom > error on all detected SQL Server errors... just the "integrity" > related ones. I want your ticket system to take over flagging other > SQL errors if they occur. > > Does that help clarify things a bit more? > > I did notice that someone using Django > (see:http://groups.google.com/group/django-users/msg/33b8f9b46ff76f05) had > a similar problem in one of their code blocks, and the reply was: > > First, you're getting "global name 'IntegrityError' is not > defined" > because IntegrityError isn't in the local namespace when you're > catching it. You'll need to import it -- probably from psycopg: > > Ex: from psycopg import IntegrityError > > Is there a similar import needed by Web2py from PYODBC, to allow > explicit checking for the 'IntegrityError'? > > Grazie! > > Todd B. > > On Jan 29, 2:11 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > According to this:http://code.google.com/p/pyodbc/wiki/Errors > > it should not do so. > > > Can you provide an example of an error that raises IntegrityError but > > should not? > > > Massimo > > > On Jan 29, 10:23 am, NetHead <tbnethe...@yahoo.com> wrote: > > > > Greetings everyone! > > > > This is my first post on this forum. My appreciation (in advance) > > > for any help any of you can lend me. > > > > SYNOPSIS: My app uses Web2py along with MS Sql Server. I placed a > > > unique constraint on a column in my SQL table, and if a user attempts > > > to enter a duplicate value in this column (and thus firing the SQL > > > UNIQUE constraint error), I want Web2py to gracefully flash a custom > > > error to the user. > > > > If MS SQL throws any other kind of non integrity-related errors, then > > > I would still like the Web2py ticket system to kick in and provide the > > > more informative message to the user. > > > > Here's the code I tried: > > > > try: > > > if items_form.accepts(request.vars,session,keepvalues=True) : > > > response.flash='Record was saved' > > > elif items_form.errors: > > > response.flash='Form has errors' > > > except IntegrityError: > > > response.flash='Possible Duplicate Item ID - Please try > > > again!' > > > > Which then generated this error ticket info: > > > > Traceback (most recent call last): > > > File "E:\Python\web2py_src\web2py\gluon\restricted.py", line 62, in > > > restricted > > > exec ccode in environment > > > File "E:\Python\web2py_src\web2py\applications\BossWalk/controllers/ > > > items.py", line 282, in <module> > > > File "E:\Python\web2py_src\web2py\gluon\globals.py", line 55, in > > > <lambda> > > > self._caller=lambda f: f() > > > File "E:\Python\web2py_src\web2py\applications\BossWalk/controllers/ > > > items.py", line 269, in items_upsert > > > except IntegrityError: > > > NameError: global name 'IntegrityError' is not defined > > > > NOTE: If I take the 'IntegrityError' string out of the 'Except' line, > > > the process does use 'flash' to show the custom error message when the > > > MS SQL unique constraint is violated. > > > > But..... I'm surmising that it will also show that *same* message if > > > ANY type of MS SQL exception gets thrown... not just the unique > > > constraint / integrity error. > > > > To summarize: I would like to flash the custom error when an SQL > > > integrity error is thrown, and fall back on the ticketing system if MS > > > SQL throws any other kind of error. > > > > Is this possible? > > > > Thanks!!! > > > > Todd B.- Hide quoted text - > > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---