The code generating that trace message is in DBI.xs which I believe it used by all C DBDs.
/* --- dispatch --- */ if (!keep_error && !(*meth_name=='s' && strEQ(meth_name,"set_err") +)) { SV *err_sv; if (trace_level && SvOK(err_sv=DBIc_ERR(imp_xxh))) { PerlIO *logfp = DBILOGFP; PerlIO_printf(logfp, " !! %s: %s CLEARED by call to %s +method\n", SvTRUE(err_sv) ? "ERROR" : strlen(SvPV_nolen(err_sv)) +? "warn" : "info", neatsvpv(DBIc_ERR(imp_xxh),0), meth_name); } DBIh_CLEAR_ERROR(imp_xxh); } else { /* we check for change in ErrCount during call */ ErrCount = DBIc_ErrCount(imp_xxh); }
It is in the despatch code. I /think/ its purpose is that any call to a new method other than set_err clears any previous error/warning/informational error state. 2000 may not be an error - it may be a warning (have you PrintWarn and warnings set) or it may be an informational message which don't get printed at all - you have to go out of your way to get those. Some DBI methods can return true but when tested the return is actually 0E0 and this indicates an informational - read the DBI docs on that.
Without knowing the driver it is impossible to guess what 2000 is.
In reply to Re: DBI - !! ERROR: 2000 CLEARED by call to fetch method
by mje
in thread DBI - !! ERROR: 2000 CLEARED by call to fetch method
by metaperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |