in reply to Strawberry Perl 64bit on Win7 crashes on DBI-function
That is a lot of data sources. Perhaps someone ca see a flaw in the XS code that DBD::ODBC uses:
void data_sources(drh, attr = NULL) SV* drh; SV* attr; PROTOTYPE: $;$ PPCODE: { #ifdef DBD_ODBC_NO_DATASOURCES /* D_imp_drh(drh); imp_drh->henv = SQL_NULL_HENV; dbd_error(drh, (RETCODE) SQL_ERROR, "data_sources: SOLID d +oesn't implement SQLDataSources()");*/ XSRETURN(0); #else int numDataSources = 0; UWORD fDirection = SQL_FETCH_FIRST; RETCODE rc; UCHAR dsn[SQL_MAX_DSN_LENGTH+1+9 /* strlen("DBI:ODBC:") */]; SWORD dsn_length; UCHAR description[256]; SWORD description_length; D_imp_drh(drh); if (!imp_drh->connects) { rc = SQLAllocEnv(&imp_drh->henv); if (!SQL_ok(rc)) { imp_drh->henv = SQL_NULL_HENV; dbd_error(drh, rc, "data_sources/SQLAllocEnv"); XSRETURN(0); } } strcpy(dsn, "dbi:ODBC:"); while (1) { rc = SQLDataSources(imp_drh->henv, fDirection, dsn+9, /* strlen("DBI:ODBC:") */ SQL_MAX_DSN_LENGTH, &dsn_length, description, sizeof(description), &description_length); if (!SQL_ok(rc)) { if (rc != SQL_NO_DATA_FOUND) { /* * Temporarily increment imp_drh->connects, so * that dbd_error uses our henv. */ imp_drh->connects++; dbd_error(drh, rc, "data_sources/SQLDataSources"); imp_drh->connects--; } break; } ST(numDataSources++) = newSVpv(dsn, dsn_length+9 /* strlen("db +i:ODBC:") */ ); fDirection = SQL_FETCH_NEXT; } if (!imp_drh->connects) { SQLFreeEnv(imp_drh->henv); imp_drh->henv = SQL_NULL_HENV; } XSRETURN(numDataSources); #endif /* no data sources */ }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Strawberry Perl 64bit on Win7 crashes on DBI-function
by Corion (Patriarch) on Apr 23, 2014 at 09:31 UTC | |
by theman824 (Novice) on Apr 23, 2014 at 12:50 UTC | |
by mje (Curate) on Apr 23, 2014 at 13:30 UTC | |
by theman824 (Novice) on Apr 23, 2014 at 14:14 UTC | |
by mje (Curate) on Apr 23, 2014 at 14:19 UTC | |
| |
Re^2: Strawberry Perl 64bit on Win7 crashes on DBI-function
by theman824 (Novice) on Apr 23, 2014 at 12:55 UTC | |
Re^2: Strawberry Perl 64bit on Win7 crashes on DBI-function
by Anonymous Monk on Apr 23, 2014 at 09:29 UTC |
In Section
Seekers of Perl Wisdom