Startet Konqueror Programme anders als das Terminal?



  • Hallo,

    ich habe ein etwas sonderbares Problem. Ich habe mir ein Programm geschrieben, dass auf SQLite Datenbanken zugreifen kann. Als GUI-Toolkit habe ich gtkmm eingesetzt.
    Jetzt mein Problem: wenn ich mein Programm über den Konqueror starte, funktioniert aus irgendeinem mir nicht ersichtlichen Grund der Zugriff auf die Datenbank nicht richtig. Wenn ich es hingegen über die Konsole mit ./Programm starte, so ist alles in Ordnung. Hier mal der Quellcode:
    foo.hpp

    #include <sqlite3.h>
    #include <IError.h>
    #include <Database.h>
    #include <Query.h>
    #include <StderrLog.h>
    #include <SysLog.h>
    #include <string>
    #include <vector>
    # include <gtkmm.h>
    
    class foo : public Gtk::Window {	
    	public:
    	foo ();
    	~foo ();
    
    	private:
    	unsigned int Anzahl;
    	Database db;
    	Query q;
    	std::string Befehl;
    	std::vector<std::string> Sessions;
    };
    

    foo.cpp

    # include "foo.hpp"
    # include <sstream>
    
    foo::foo () :
    	Anzahl (0),
    	db("Vok.db"),
    	q (db)
    	{
    	q.execute("create table session (id integer, Deutsch string, Mittelspalte string, Fremdsprache string, Gewusst integer, NGewusst integer, Zuordnung string)");
    
    	q.get_result("select COUNT(*) from session"); // Herausfinden, wieviele Elemente in der Datenbank sind
    	while (q.fetch_row()) {
    		Gtk::MessageDialog dia (q.getstr());
    		dia.run();
    		//Anzahl = q.getval ();
    	}
    	q.free_result();
    }
    
    foo::~foo () {
    	q.free_result();
    }
    

    main.cpp

    #include "foo.cpp"
    
    int main(int argc, char *argv[]) {
      	Gtk::Main kit(argc, argv);
    
      	foo window;
     	kit.run(window);
    
      	return 0;
    }
    

    Ich weiß, es ist etwas unübersichtlich. Die Datenbank (Vok.db) enthält 11 Reihen, weshalb der Gtk::MessageDialog in Zeile 13 (foo.cpp) 11 anzeigen sollte. Das tut er auch, wenn ich das Programm übers Terminal starte. Wenn ich es über den Konqueror mit Doppelklick starte steht dort hingegen 0.

    Ich poste dieses Problem deshalb ins Linuxforum, weil dieses Phänomen unter Windows nicht existiert. Starte ich mein Programm dort im Explorer, so erscheint auf der MessageBox 11, genauso wie es sein soll.

    Ich hoffe irgendwer kann beantworten, welche Ursache dieses seltsame Verhalten hat.

    Danke



  • könnte vielleicht mit benutzerrechten zusammenhängen - schonmal daran gedacht?

    mfg blan



  • Würde mich wundern. Ich starte das Programm weder in der Konsole noch im Konqueror mit root-rechten und einen anderen Account als meinen und den des rootes gibt es nicht.

    Danke für die Hilfe



  • Höchstwahrscheinlich wird einfach das Working-Directory ein anderes sein, gib den Dateipfad mal irgendwie absolut an.


Anmelden zum Antworten