D2.01/Sybase: App hangs on duplicate key violation

Can anyone give me a clue as to why this code snippet hangs when a
duplicate key violation occurs?  I can walk through the code in the
de{*word*81} and see the exception raised but the try/except block doesn't
seem to catch the error.  Instead of jumping to the except... clause,
execution appears to fall through to the ShowMessage and the application
just hangs.  The application was written with Delphi 2.01 and uses the
Intersolve odbc drivers to talk to Sybase 11.02.

  try
    dbModule1.Query1.Close;
    dbModule1.Query1.SQL.Clear;
    dbModule1.Query1.SQL.Add(SQLString);
    dbModule1.Query1.ExecSQL;
    ShowMessage('User has been added');
  except
    on E: Exception do
      MessageDlg('Error adding user: ' + E.Message, mtError, [mbOK], 0);
  end;

--
================================================
Ray Porter
Applications Analyst Programmer
Administrative Information Services, UNC-CH
Phone: 966-5878
email: l...@email.adp.unc.edu
         dra...@email.unc.edu
Home Page: http://www.adp.unc.edu/~allrp/

"Meddle not in the affairs of dragons,
for you are crunchy and taste good with ketchup."