On Sun, 02 Jan 2011 18:07:13 +0000, "Martin J. Evans"
<[email protected]> wrote:
> Sorry if this turns out to be gibberish but I'm been battling with a
> host of unicode problems today and I am quickly losing track.
>
> I can't make ChopBlanks work properly in DBD::ODBC. It works if I use:
>
> $dbh->{ChopBlanks} = 1;
> $sth = $dbh->prepare(q/select * from sometable/);
>
> and does not work if I use:
>
> $sth = $dbh->prepare(q/select * from sometable/);
> $sth->{ChopBlanks} = 1;
The above completely meets my expectation. Once the sth is created, and
all attributes are set (either directly or derived/inherited from dbh),
they should *not* change when dbh changes it on a higher level.
> and it seems "ChopBlanks = DBIc_has(imp_sth, DBIcf_ChopBlanks);" is not
> true in DBD::ODBC's dbdimp.c.
>
> Various DBD's use DBIc_has (DBD::ODBC, DBD::Pg, DBD::Oracle) or DBIc_is
> (DBD::mysql).
DBD::Unify uses DBIc_has ()
DBD::CSV (through DBD::File) use s DBIc_is ()
In fact they are the same:
DBIXS.h:#define DBIc_has(imp,flag) DBIc_is(imp, flag) /* alias for DBIc_is */
> The DBI::DBD documentation says (for XS):
>
> "Note that you can also obtain standard attributes such as /AutoCommit/
> and /ChopBlanks/ from the attributes parameter, using
> |DBD_ATTRIB_GET_IV| for integer attributes."
>
> and
>
> "The dbd_db_STORE_attrib method
> You do not handle all attributes; on the contrary, you should not handle
> DBI attributes here: leave this to DBI. (There are two exceptions,
> /AutoCommit/ and /ChopBlanks/, which you should care about.)"
>
> I presumed a DBD should "care" about ChopBlanks as DBI is not going to
> remove the trailing blanks not that DBI is not going to store the
> ChopBlanks value and yet when I call DBIc_has(imp_sth, DBIcf_ChopBlanks)
> on a sth it returns false even though I set $sth->{ChopBlanks} = 1.
Before or after the sth was created?
> DBD::ODBC (like all the other DBDs I've checked) does not handle
> ChopBlanks in the STORE or FETCH routines.
>
> Any ideas what is wrong?
--
H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/
using 5.00307 through 5.12 and porting perl5.13.x on HP-UX 10.20, 11.00,
11.11, 11.23 and 11.31, OpenSuSE 10.1, 11.0 .. 11.3 and AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/