Aren't the mysql sql state known. i remember coding using java.sql with
the mysql database driver, it had alot of the error code, state, and
messages implemented. Also, this was somewhat close to Oracle.

Thus without having readup on DBI and DBD, I would say it should follow
the code/state standards of mysql.

Anyway, just a thought.

-rkl

> Ok, I found this link
>
>    
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odapps.asp
>
> but I'm not sure that's ODBC 3.5.
>
> Also, this page has a table with 3 columns:
>    SQLSTATE (5 digit number)
>    Error - terse error description
>    Can be returned from
>
> The 'Can be returned from' column is a list of ODBC functions
> that I'm completely unfamiliar with - but SQLExecute
> and SQLPrepare may(?) be similar to the DBI functions.
>
> Also, scanned through the listed Error's to try to
> find a match for our "trying to insert a duplicate key"
> error described in the thread below.  I came up with these
> posibilities:
>
>   23000 Integrity constraint violation  SQLBulkOperations
>                                         SQLExecDirect
>                                         SQLExecute
>                                         SQLParamData
>                                         SQLSetpos
>
>   3C000 Duplicate cursor name           SQLSetCursorName
>
>   40002 Integrity constraint violation  SQLEndTrans
>
>   42S11 Index already exists            SQLExecDirect
>                                         SQLPrepare
>
> Which one is most appropriate?  We definitely want to
> know the difference between this "duplicate key" constraint
> and some other constraint violation, so I really don't
> know which one is most appropriate.  Thoughts?
>
> TIA.
> --
> Hardy Merrill
> Red Hat, Inc.
>
>
> Hardy Merrill [EMAIL PROTECTED] wrote:
>> Tim Bunce [EMAIL PROTECTED] wrote:
>> > On Mon, Sep 29, 2003 at 12:14:17PM -0400, Hardy Merrill wrote:
>> > > Tim Bunce [EMAIL PROTECTED] wrote:
>> > > > On Mon, Sep 29, 2003 at 09:32:10AM -0400, Hardy Merrill wrote:
>> > > > > Thomas A. Lowery [EMAIL PROTECTED] wrote:
>> > > > > >            # Does the error message contains the phrase: duplicate key
>> > > > > >            if ($dbh->errstr =~ m/duplicate\skey/i) {
>> > > > >                                       ^^^^^^^^^^^^^^
>> > > > > Just to clarify, as Thomas said above, each database produces
>> > > > > different error messages to indicate that you are trying
>> > > > > to insert a duplicate key - so what you search for here will
>> > > > > vary depending on which database you are using.
>> > > >
>> > > > Of course, in an ideal world, DBD's would all set $DBI::state
>> > > > ($h->state) to the appropriate value: "23000"
>> > > >
>> > > > Maybe someone could define a list of the errors that most
>> frequently
>> > > > need to be explicitly checked for. The DBI spec could then list
>> > > > those along with the standard SQL_STATE error codes and suggest
>> that
>> > > > drivers support at least that basic set of codes.
>> > >
>> > > I think this is an excellent idea!
>> >
>> > Does that mean you're volunteering to coordinate making the list?
>> > That is, soliciting input from dbi-users and dbi-announce and produce
>> > a list of the corresponding SQL_STATE values (based on ODBC 3.5).
>> > I hope so :)
>>
>> Damn, I knew I shouldn't have responded to that ;-)
>> Just kidding :)
>>
>> As I've never used ODBC, if you can point me to the proper
>> ODBC 3.5 docs, I'll solicit input to create a list of SQL_STATE
>> values.  I searched google for 'odbc 3.5' and 'odbc' and 'odbc
>> sql state', and I'm not having much luck finding a list of
>> sql state's.
>>
>> Hardy
>>
>> >
>> > Tim.
>> >
>> > > The only situation I can think of that I've had to code
>> > > around where different databases produce different results
>> > > is this one - this "trying to insert a duplicate record"
>> > > error.  There must be others ;-)
>> > >
>> > > --
>> > > Hardy Merrill
>> > > Red Hat, Inc.
>

Reply via email to