SQL Trigger und Qt Signal/Slot verheiraten?

Alles rund um die Programmierung mit Qt
Antworten
otternase
Beiträge: 62
Registriert: 25. Januar 2008 12:20

SQL Trigger und Qt Signal/Slot verheiraten?

Beitrag von otternase »

Hallo

gibt es einen Weg, Trigger aus einer Datenbank an einen Slot in Qt zu binden? Oder gibt es für folgende Aufgabenstellung eine andere bessere Lösung?

Wenn in der Postgresql Datenbank, mit der mein Programm verbunden ist, in einer bestimmten Tabelle ein bestimmtes Feld sich ändert, sei es durch eine Aktion meines Programms, aber auch durch eine externe Quelle, so soll in meinem Programm eine bestimmte Aktion angestossen werden. Optimalerweise soll dabei die geänderte Zeile (alte und neue Werte) mit übergeben werden.

Für Hinweise, speziell auch, unter welchen Stichworten ich suchen muss, wäre ich sehr dankbar!

Ciao
Markus
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Soweit ich weiß kann die Qt-Sql-Schnittstelle nicht mit Triggern umgehen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
otternase
Beiträge: 62
Registriert: 25. Januar 2008 12:20

Beitrag von otternase »

Christian81 hat geschrieben:Soweit ich weiß kann die Qt-Sql-Schnittstelle nicht mit Triggern umgehen.
Das ist genau das Problem, ich suche jetzt nach Work-Arounds...

Wie sähe es zB. damit aus, einen Socket anzulegen, in den die Datenbank durch eine vom Trigger gestartetes C-Funktion hineinschreibt und auf den mein Programm hört?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das ist sehr db-spezifisch - da kann ich nichts zu sagen. Falls es sowas gibt würde sich ein Listen-Thread anbieten der dann ein Signal emitiert wenn der Trigger zuschlägt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Zu finden unter QSqlDriver:

Code: Alles auswählen

bool subscribeToNotificationImplementation ( const QString & name ) 
QStringList subscribedToNotificationsImplementation () const 
bool unsubscribeFromNotificationImplementation ( const QString & name )
Die Kommandos der Datenbank dazu findest du in dessen Doku...
otternase
Beiträge: 62
Registriert: 25. Januar 2008 12:20

Beitrag von otternase »

upsala hat geschrieben:Zu finden unter QSqlDriver:

Code: Alles auswählen

bool subscribeToNotificationImplementation ( const QString & name ) 
QStringList subscribedToNotificationsImplementation () const 
bool unsubscribeFromNotificationImplementation ( const QString & name )
Die Kommandos der Datenbank dazu findest du in dessen Doku...
ganz hervorragend, das habe ich gesucht! da werde ich wohl mal auf Qt4.4 updaten müssen...
Antworten