Hi Hiroshi,
> > ******************************************************************************************
> > wats=# begin;
> > BEGIN
> > wats=# select vendor_remove(1);
> > ERROR: <unnamed> referential integrity violation - key in vendor still
> > referenced from vendorforwellagreement
> > wats=# commit;
> > COMMIT
> > ******************************************************************************************
> >
> > psql reports the error when I issue the SELECT statement, not when I
> > issue the commit. Shouldn't I be able to capture an exception when I do
> > an ExecuteSQL() from VC++, instead of a CommitTrans() ?
>
> Could you show me a reproducible example ?
I'm attaching two .sql files. Using psql, load the file "tables.sql" in
a fresh database. Then try to execute the commands in the "data.sql"
file. You should get the following error message:
test=# \i data.sql
BEGIN
psql:data.sql:2: ERROR: <unnamed> referential integrity violation - key
in tableb still referenced from tablea
COMMIT
If you try to issue the commands included in the "data.sql" file through
ODBC using VC++ (instead of psql) you will run across the case where an
exception cannot be captured.
Thanks,
-Kristis