Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot


by jahero (Pilgrim)
on Nov 08, 2016 at 07:53 UTC ( [id://1175515]=user: print w/replies, xml ) Need Help??

Posts by jahero
Strange DBI/DBD::ODBC behaviour (right truncation of data on ODBC call) in Seekers of Perl Wisdom
3 direct replies — Read more / Contribute
by jahero
on Oct 21, 2019 at 09:01

    EDIT: Solved by poj (thank you!), node Re^3: Strange DBI/DBD::ODBC behaviour (right truncation of data on ODBC call)

    Strange DBI/DBD::ODBC behaviour (right truncation of data on ODBC call)

    Dear monks, I am seeking your wisdom in regards to a problem with DBD::ODBC.

    I am issuing the a statement into a database connected via ODBC, roughly in the following fashion:

    $sth = $dbh->prepare('show table"EP_TGT"."NA_DATA_CNTL";'); $sth->execute; while (my $text = $sth->fetchrow_array) { # a piece of code not relevant to the question }
    Resultset should be approximately ~30.000 bytes long.

    The query (fetchrow_array) fails with the error of DBD::ODBC::st fetchrow_array failed: st_fetch/SQLFetch (long truncated DBI attribute LongTruncOk not set and/or LongReadLen too small).

    I was tinkering with the problem a little bit, with the following result:

    • Setting LongReadLen to 65535 does not help.
    • Setting LongReadLen to 1 yields partial DDL statement for the table

    This is the result of DBI trace (the important part).

    Based on that, it seems that:
    • DBI is treating return value as VARCHAR, not as LOB, therefor rendering any manipulation of LongReadLen moot
    • Setting LongTruncOk lets the query run its course, however yields only partial results - which is bad

    I am on perl 5.28 64bit, DBI version 1.642, DBD::ODBC 1.60

    The question: can you suggest a way how to run the querry sucessfully, without truncating the data? Can I "persuade" DBI to use longer buffer for VARCHARs somehow?

    Thank you for your wisdom.


[SOLVED] Test:: fail when output file was changed in Seekers of Perl Wisdom
1 direct reply — Read more / Contribute
by jahero
on Jan 18, 2019 at 04:05

    Dear fellow monks.

    I think that some time ago I have seen somewhere information about a package on CPAN (in a blog post I think), which could be used in testing, and which:

    • by default failed, when named output file was changed
    • could run in such a mode, that it would "remember" current state of the file (if the change was intentional), which would prevent further fails (until next change)

    Imagine you are programmatically creating complex structured text, and want to be able to "keep it fixed" in you tests - unless you know that the change is "for the better"

    Is my memory playing tricks on me? Are you aware of such library? I hope that what I vaguely described above makes sense.

    Unfortunately, mu Google-fu is not advanced enough to yield the answer.

    Regards, Jan


    Update: change the title, answer is in comments below.

NCurses based editor of configuration files? in Seekers of Perl Wisdom
4 direct replies — Read more / Contribute
by jahero
on Jan 11, 2017 at 03:07

    Dear monks,

    I am looking for a PERL module, which would help me to quickly build a front end allowing manipulation of configuration file(s).

    Has any of you seen something like this done?

    Preferrably using modules which are available for ActiveState PERL (Windows).

    Thank you very much for your time and any pointers.

    Regards, Jan

Namespaces & colliding names in Seekers of Perl Wisdom
3 direct replies — Read more / Contribute
by jahero
on Nov 08, 2016 at 03:10

    Hello wise monks!

    I would like to ask a (probably) newbie question in regards to namespaces and names collisions.

    Lets say that I have something like this in my code (shortened, incomplete).

    package Something::BufferedRead; use strict; use warnings FATAL => 'all'; use File::Basename; our $VERSION = 1.00; my $BUFFER_SIZE = 1048576; sub new { my $class = shift; my @data = @_; my $self = {}; bless $self, $class; return $self; } sub basename { my $self = shift; return basename($self->{cfg}->{filename}); }

    Now this fails to compile since 'basename' collides with name of sub imported from module File::Basename. Obvious solution would be to change name of my sub, for example to 'base_name', however I want to understand what exactly is going on, and how to prevent this from being pain in the future.

    Which leads me to the real question.

    • Is there aby way how to prevent File:::Basename->basename from becoming a member of Something::BufferedRead namespace?
    • How exactly does one influence what is imported from the module used? I am sure this has something to do with Exporter module and/or import methods, but details slip from grasp.
    • What mechanism could I use to be able to declare 'basename' sub in my sub, and still have File::Basename->basename at my disposal?

    Thank you for your time!

Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2024-04-21 07:59 GMT
Find Nodes?
    Voting Booth?

    No recent polls found