orezani (?) dotazu v DBD-Pg

Radek Hrabčák rhrabcak na czechin.cz
Čtvrtek Prosinec 20 10:43:14 CET 2001


Preji hezky den.

Mam perlovsky skript bezici na Windowsovske stanici (ActivePerl 5.6.1 for
MSWin32-x86-multi-thread, Binary build 628, DBI-1.14, DBD-Pg-0.94), ktery se
pripojuje na databazi Postgresql-7.1 bezici na Linuxovem serveru. 

skript vypada asi takto:
----------------------------------------------------------------------------
-------
#!/usr/bin/perl
...
my $dbh =
DBI->connect("DBI:Pg:host=$linux_server;dbname=$dbname;port=$port",$dbuser,$
dbpass);
...
my $promenna = 'a'x30000;
my $statement = "INSERT INTO test VALUES (1,'$promenna')";  # table test =
(id INT, nejaky_sloupecek text)

my $sth = $dbh->prepare($statement);
$sth->execute();
...
----------------------------------------------------------------------------
-------

Po spusteni skript vypise:
DBD::Pg::st execute failed: pgReadData() -- read() failed: errno=0  No error

a v postgresovskem server-logu se objevi hlaska:
2001-12-19 12:14:41 ERROR:  Unterminated quoted string
pq_recvbuf: recv() failed: Connection reset by peer

Pri pouziti DBI->trace(1) to vypada, ze neprojde uspesne metoda prepare.
Podle hlasky v logu zase usuzuji, ze dlouhy vstupni retezec (dotaz) byl
orezan. 
Pro stejny typ connectu a stejne verze modulu DBI a DBD-Pg, a stejnou verzi
perlu, ovsem tentokrat bezici na jinem linuxovem stroji, pracovalo vse bez
problemu. Mate nekdo predstavu, proc se to na Windowsech chova tak, jak se
chova? Pripadne, jak tento problem odstranit?


Radek Hrabčák
--------------------------------
| E-mail: rhrabcak na czechin.cz  |
|    WWW: http://alex.land.cz/ |
|    ICQ: 57268736             |
--------------------------------


Další informace o konferenci Databases