in reply to Re^5: uninitialized value in Tk::DBI::Table
in thread uninitialized value in Tk::DBI::Table

The '=' is from a sql statement, it is not executed as perl code. Numbers or not, the equality comparison operator for sql is '='. It should have nothing to do with what happens when the column heading is selected to sort. It's likely that the numbers are quoted because it is a character field in a table that happens to have numbers in it, but that shouldn't matter either.

My guess at the source of the problem is that he is using Tk::DBI::Table 0.01 (0.01 line 294 looks more likely than 0.02 line 294), one (or more) of the date/time columns is null, and he is getting uninitialized warnings during the sort of that 'uninitialized' column. Seeing a small sample of the data selected that still displays this problem could confirm this.

  • Comment on Re^6: uninitialized value in Tk::DBI::Table

Replies are listed 'Best First'.
Re^7: uninitialized value in Tk::DBI::Table
by TonyDonker (Novice) on Feb 18, 2005 at 08:40 UTC
    Hi runrig,

    I am using package Tk::DBI::Table; 1.8 (version from the source). I experimented with a simple code:

    use Tk; use Tk::DBI::Table; use DBI; my $dbh = ''; my $limit_entry = 100; my $dbh = DBI->connect("dbi:SQLite:dbname=as2con.db", "", "", {PrintWa +rn => 0, PrintError => 0}); my $top = MainWindow->new; $top->geometry('200x300'); my $sql_query = "select cdate AS 'Date/Time', case when statusType = '1' then 'Debug' when statusType = '2' then 'Info' when statusType = '3' then 'Warning' when statusType = '4' then 'Error' else 'unknown' end as Status, statusValue AS 'Description' from statusmessages order by cdate desc LIMIT $limit_entry"; my $tkdbi = $top->DBITable( -sql => $sql_query, -dbh => $dbh, -display_id => 1, )->pack(expand => 0, -fill => 'both'); MainLoop;


    and I receive:

    - no messages with uninitialized values;
    - but you can't sort the first column (Date/Time);


    So I guess there goes something wrong in the bigger program in which I use DBI::Table.

    Cheers,

    Ton
      am using package Tk::DBI::Table; 1.8 (version from the source)...So I guess there goes something wrong in the bigger program in which I use DBI::Table.
      I just noticed that there is a Tk::DBI::Table in the author's Tk-DBIx distribution which has a version number in the source later than anything else (Distribution Tk-DBI-Table 0.01 has module Tk::DBI::Table version 1.3, Tk-DBI-Table 0.02 has module version 1.8, while Tk-DBIx has module version 1.13). It does not fix your problem though. I don't think there's anything wrong with the way you are using the module, it appears to be a bug in the module itself.