Hello,
the following code saves a randomly chosen text from Tk::Text to db
through DBI/DBD::CSV. When you add a few characters to the widget and
save by means of a 'change' button, the packed program crashes.
Saving less characters is ok.
Tested on windows xp and W98, running a bare script is ok.
Packed simply with pp -o test.exe test.pl.
db file test enclosed, perl is v5.8.6 from ActiveState.
id|notes|entry
1|"Thank you for using ActivePerl, ActiveStates quality-assured binary build of
Perl, available for Linux, Solaris and Windows. As part of ActiveStates support
for Perl, ActiveState provides the ActivePerl binary packages free to the
community. ActivePerl includes:
Perl, the binary core distribution
The Perl Package Manager , for installing Perl extension modules
Complete documentation
The Windows version of ActivePerl also includes:
Perl for ISAPI, an IIS plug-in that makes perl CGI faster
PerlScript, an ActiveX scripting engine, like JavaScript or VBScript with a
Perl brain
PerlEz, for embedding Perl the easy way
Refer to the Release Notes for information about this version of ActivePerl.
ActiveState Products
ActiveState is the leading provider of productivity tools for Perl programmers
and technology solutions based on Perl.
Solutions
ASPN Perl, a complete package of Perl productivity tools and programming
information.
PerlEx, easy website acceleration for Perl scripts.
PerlASPX, use Perl for dynamic content generation on ASP.NET Web servers.
Productivity Tools
Perl Dev Kit, the essential toolkit for building Perl applications for UNIX and
Windows platforms.
Komodo, the cross-platform integrated development environment for open source
languages.
Visual Perl, the Perl plug-in for Visual Studio .NET.
Contact ActiveState
For installation-related support issues, contact [EMAIL PROTECTED]
For general information and support, refer to the ActivePerl mailing list at
http://aspn.ActiveState.com/ASPN/Mail/Browse/Threaded/ActivePerl
To report a bug, or to view bugs fixed in this release, see the ActivePerl bug
site, at http://bugs.ActiveState.com/ActivePerl
Thank you for using ActivePerl, ActiveStates quality-assured binary build of
Perl,
Komodo, the cross-platform integrated development environment for open source
languages.
Visual Perl, the Perl plug-in for Visual Studio .NET.
Contact ActiveState
For installation-related support issues, contact [EMAIL PROTECTED]
For general information and support, refer to the ActivePerl mailing list at
http://aspn.ActiveState.com/ASPN/Mail/Browse/Threaded/ActivePerl
To report a bug, or to view bugs fixed in this release, see the ActivePerl bug
site, at http://bugs.ActiveState.com/ActivePerl
Thank you for using ActivePerl, ActiveStates quality-assured binary build of
Perl,
Komodo, the cross-platform integrated development environment for open source
languages.
Visual Perl, the Perl plug-in for Visual
sss sss s"|ascii
__START CODE__
#!/usr/local/perl
use Tk;
use Tk::Text;
use DBI;
use warnings;
use strict;
my ($mw,$dbh);
our ($text);
$mw = MainWindow->new();
$mw->geometry("600x400");
$text= $mw->Scrolled('Text',
-scrollbars=>'e',
)->pack(-side=>'top',
-fill=>'both',
);
$mw->Button(-text=>'change',
-command=>[\&change,\$dbh],
)->pack();
$mw->Button(-text=>'retrieve',
-command=>[\&retrieve,\$dbh],
)->pack();
$dbh = DBI->connect("DBI:CSV:csv_sep_char=\\|",{RaiseError => 1,AutoCommit =>
1,})
or die "Cannot connect: " . $DBI::errstr;
retrieve(\$dbh);
MainLoop;
sub change {
my ($rdbh,$notes);
($rdbh) = @_;
chomp ($notes = $text->get("1.0",'end'));
$$rdbh->do("UPDATE test SET notes=\'$notes\'")
or die "Cannot update: " . $DBI::errstr;
}
sub retrieve {
my ($dbh,$rdbh,$sth,$notes);
($rdbh) = @_;
$dbh = $$rdbh;
$sth = $dbh->prepare("SELECT notes FROM test")
or die "Cannot prepare: " . $DBI::errstr;
$sth->execute() or die "Cannot execute: " . $DBI::errstr;
$sth->bind_col(1,\$notes) or die "Cannot bind: " . $DBI::errstr;
my $a = $sth->fetch or die "Cannot fetch: " . $DBI::errstr;
$text->delete("1.0",'end');
$text->insert('end',$notes);
$sth->finish or die "Cannot finish: " . $DBI::errstr;
}
__END CODE__
Does anyone have a clue?
Thanks much.
--
Radek