PgTcl - Speicherzugriffsfehler

Fragen, Probleme etc. zu den prozedularen Sprachen ( PL/Tcl, PL/Perl und PL/Python).
Antworten
steff75b
Neuer Benutzer
Beiträge: 2
Registriert: Fr 30. Sep 2016, 02:28

PgTcl - Speicherzugriffsfehler

Beitrag von steff75b » Fr 30. Sep 2016, 02:41

Hallo,

ich schreibe ein Programm in Tcl/Tk mit PgTcl, dass auf diverse
PostgreSQL Datenbanken zugreifen soll. Dabei habe ich
das Problem, dass ich nach einem Wechsel aus einer
geöffneten Datenbank in eine andere Datenbank
nach kurzer Zeit einen Speicherzugriffsfehler bekomme.

Den Wechsel der Datenbank habe ich wie folgt programmiert:

Der Benutzer bekommt alle bestehenden Datenbanken in
einer Listbox angezeigt. Mit einem Doppelklick auf eine
Datenbank soll die Verbindung zu der bereits geöffneten
Datenbank geschlossen werden und eine neue Verbindung
zur angeklickten Datenbank hergestellt werden.

Die Datenbanken frage ich wie folgt ab:

set res [pg_exec $db1 "SELECT datname FROM pg_database ORDER BY datname;"]
set ergebnis [pg_result $res -list]
pg_result $res -clear
...

Nach dem Doppelklick schließe ich zunächst die
geöffnete Datenbank:
bind .mandwechsel.l <Double-Button-1> {
# alte datenbank schließen
pg_disconnect $db1
# neue datenbank ermitteln
set mtemp [selection get]
# verbindung zur ausgewählten datenbank herstellen
set db1 [pg_connect -conninfo [list host = $servername port = $port user = $benutzer dbname = $mtemp password = $passwort]]
...

Die Verbindung zur neuen Datenbank wird hergestellt und ich
kann i.d.R. ein paar Abfragen durchführen. Nach kurzer Zeit
stürzt aber das Tcl/Tk Programm mit der Meldung "Speicherzugriffsfehler"
ab wenn ich eine SQL Abfrage abschicke. Die Fehlermeldung scheint
nicht vom Tcl Interpreter zu kommen sondern erscheint nur im
Terminalfenster. Ich vermute die Fehlermeldung kommt von PgTcl.

Was mache ich falsch?

OpenSUSE Leap 42.1
Tcl/Tk 8.6.1
PgTcl 1.7
PostgreSQL 9.2.7

Vielen Dank!

akretschmer
Erfahrener Benutzer
Beiträge: 7625
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: PgTcl - Speicherzugriffsfehler

Beitrag von akretschmer » Fr 30. Sep 2016, 11:01

steht was im irgend welchen Logs?

Btw.: 9.2.7 ist recht alt, aktuell in 9.2 ist 9.2.18. Seit gestern haben wir aber auch schon 9.6. Die Aktualität der anderen Komponenten habe ich jetzt nicht geprüft. Vielleicht hilft ja schon ein Update der Komponenten.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

steff75b
Neuer Benutzer
Beiträge: 2
Registriert: Fr 30. Sep 2016, 02:28

Re: PgTcl - Speicherzugriffsfehler

Beitrag von steff75b » Sa 1. Okt 2016, 11:29

Danke für die schnelle Antwort!

In den PostgreSQL-Logs habe ich keine Fehlermeldungen gefunden, die ich mit den
Programmabstürzen in Verbindung bringe.

Ob es Logs zu PgTcl und Tcl/Tk gibt, weiss ich nicht. Ich habe zumindest keine gefunden.
Ich arbeite erst seit einigen Wochen mit PostgreSQL und PgTcl, daher habe ich noch nicht
ganz den Durchblick.

Ich werde bei Gelegenheit mal meine Software aktualisieren.

Hab noch mal nachgeschaut ... meine PostgreSQL Version ist 9.2.14

Gisman
Erfahrener Benutzer
Beiträge: 1126
Registriert: Fr 20. Jan 2006, 15:30
Wohnort: Pfalz
Kontaktdaten:

Re: PgTcl - Speicherzugriffsfehler

Beitrag von Gisman » So 2. Okt 2016, 04:43

Leap liefert dir mindestens 9.4 als Paket frei Haus im Standardrepo. Unter [url]http://download.opensuse.org/repositori ... 86_64//url] findest du auch alle neueren, inclusive PgTcl etc.

Gruß Uwe

Antworten