[Vienna-pm] setsockopt() auf eine DBI handle
Bernd Petrovitsch
bernd at firmix.at
Thu Nov 10 01:05:47 PST 2005
On Thu, 2005-11-10 at 09:48 +0100, Peter J. Holzer wrote:
> On 2005-11-10 09:05:15 +0100, Wolfgang Laun wrote:
> > Bernd Petrovitsch wrote:
> > >Es wär' ja zu einfach gewesen, in der setsockopt() Implementierung im
> > >perl selber auch auf einen int zu reagieren und den als Filedescriptor
> > >zu interpretieren.
> > >
> > Aber entsteht das Problem nicht dadurch, dass DBI das Filehandle, das
> > mit socket eingerichtet wird, verbirgt und (warum auch immer) nur den
> > Filedescriptor hergibt?
>
> Da gibt es aller Wahrscheinlichkeit nach keinen Perl Filehandle. Der
> Socket zur Datenbank wird ja üblicherweise nicht von Perl-Code erzeugt,
> sondern von der entsprechenden Datenbankclientlibrary. Eigentlich
Ja, nehm ich auch mal an. Bei der C-Version der PG-Client-Lib macht das
auch die Lib.
> wundert mich, dass man da überhaupt einen Filedescriptor rauskriegt (ich
> finde func('getfd') auch nicht in der Doku, ich nehme an, das ist eine
Weil du (offensichtlich;-) in der falschen suchst - ich hab auch länger
gebraucht, das zu finden: func() als solches ist in
http://search.cpan.org/~timb/DBI-1.48/DBI.pm beschrieben und das akut
verwendete ist in http://search.cpan.org/~rudy/DBD-Pg-1.31/Pg.pm zu
finden.
> private Funktion eines speziellen DBD-Treibers). Natürlich könnte der
> DBD auch netterweise gleich einen Perl-Filehandle zurückliefern statt
> des "nackten" Filedescriptors.
V.a. einen, der nicht auch irgendwie gleich die DB-Connection schließen
will - die Befürchtung (und Erwartung) habe ich, nachdem ich die
Fehlermeldung gelesen und analysiert hatte.
MaW DBI/DBD::* braucht eine Methode, die nichts andere wie die obige
Lösung des Problems in eine Methode gegossen. Einfahc zu verwenden und
funktioniert trotzdem.
Bernd
--
Firmix Software GmbH http://www.firmix.at/
mobil: +43 664 4416156 fax: +43 1 7890849-55
Embedded Linux Development and Services
More information about the Vienna-pm
mailing list