Illegal operation on emty result set

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

nahemoth
**
Beiträge: 29
Registriert: Do, 20.08.2009 08:27

Illegal operation on emty result set

Beitrag von nahemoth »

Hi,

ich möchte per Formular einen Datensatz zu einer Tabelle hinzufügen, nur 2 Felder, nichts ungewöhnliches. Im Hintergrund läuft ein SQL-Server der dann via Trigger aus einem Feld die md5-Summe erstellt und das Feld dadurch ersetzt ... funktioniert auch, wenn ich via sql-Statement einen Datensatz anlege. Wenn aber über ein Formular ein Datensatz angelegt werden soll, kommt der Fehler Illegal operation on emty result set, der Datensatz wird aber trotzdem angelegt.
Was soll mir diese Meldung sagen ? und wie kann ich sie abstellen ;-)

Thx!
AndreasJBittner
*****
Beiträge: 473
Registriert: Fr, 09.10.2009 16:44
Wohnort: Bielefeld
Kontaktdaten:

Re: Illegal operation on emty result set

Beitrag von AndreasJBittner »

Hi,

na lies Deine Fehlermeldung doch mal. Du versuchst eine Operation auf einer leeren (empty ... set) Menge. Offenbar macht Dein Formular etwas Anderes als Dein SQL-Statement.

Grüße
Andreas
LO 4.3
AMD Athlon 64 3700+, 2.21 GHz, 4 GB RAM, Win XP SP3
iMac 2 GHz, 16 GB RAM/MacBookPro, 8 GB RAM, Mac OS X 10.9.5
Intel Core2 Quad CPU Q6600 @ 2,4 GHz, 4 GB RAM, Suse 13.2

MySQL 5.1: Pentium III, 666 MHz, 512 MB, Suse 12.1
nahemoth
**
Beiträge: 29
Registriert: Do, 20.08.2009 08:27

Re: Illegal operation on emty result set

Beitrag von nahemoth »

hm, aber ich habe ein ganz normales formular zur dateneingabe erstellt, und ich habe das auch schon mit dem asisstenten wiederholt, aber immer der selbe fehler.
und er fügt die datensätze ja der tabelle hinzu, dessahlb wundert mich ja die fehlermeldung.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Illegal operation on emty result set

Beitrag von DPunch »

Aloha

Zu dem Thema (bzw. der Fehlermeldung) gibt es bei Google einiges zu finden - ich würde also empfehlen, dort mal Ausschau zu halten.
Es ist zumindest meines Wissens nach kein Base-spezifischer Fehler, insofern wird Dir hier mit diesen spärlichen Informationen sowieso niemand helfen können.
Dazu fehlen einfach die Details (welches DBMS, Fehler auch ohne md5, Datentyp etcetc)
nahemoth
**
Beiträge: 29
Registriert: Do, 20.08.2009 08:27

Re: Illegal operation on emty result set

Beitrag von nahemoth »

also, google habe ich bereits befragt ... keine zu verwertende antwort erhalten, sonst hätte ich das problem warscheunlich schon gelöst.
am md5 kann es nicht liegen, da der string als varchar an mysql übergeben wird und dort dann via trigger md5-codiert wird.
Ich kann in Base einen Datensatz anlegen, wenn ich die tabelle öffne und eben die daten eingebe, dann funktioniert es ohne Fehler.
nur eben nicht über ein Formular.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Illegal operation on emty result set

Beitrag von DPunch »

Aloha
nahemoth hat geschrieben:Ich kann in Base einen Datensatz anlegen, wenn ich die tabelle öffne und eben die daten eingebe, dann funktioniert es ohne Fehler.
Selbstverständlich.
Da Du in der Tabelle nicht auf Basis eines Result Sets arbeitest, im Gegensatz zu einem Formular, kann es dort diese Fehlermeldung logischerweise auch nicht geben.

Angesichts Deiner Aussage, dass der Datensatz trotz der Fehlermeldung angelegt wird, wäre meine erste Vermutung:
Der Trigger doktort an einem Key rum.
Der Datensatz wird vom Result Set in die Datenbank geschrieben, dort wird der Trigger ausgelöst und die entsprechenden Werte als md5-Hash aktualisiert.
Das Result Set im Formular hat aber immer noch den Originalwert als Referenz, nach dem Einfügen des Datensatzes versucht das Formular sich zu aktualisieren, findet aber unter dem Originalwert keinen Datensatz, da dieser in der Datenbank ja nun als md5-Hash hinterlegt ist => das Result Set ist empty.

Aber nochmal:
Wenn Du wirklich Hilfe suchst, dann solltest Du vielleicht genauere Informationen preisgeben. Ins Blaue zu raten ist mühsam. Tritt der Fehler z.B. auch ohne den md5-Hash-Trigger auf, ist obige Vermutung schon obsolet.
nahemoth
**
Beiträge: 29
Registriert: Do, 20.08.2009 08:27

Re: Illegal operation on emty result set

Beitrag von nahemoth »

also, derfehler tritt auch auf, wenn der trigger nicht aktiv ist.
die tabelle besteht aus genau 2 spalten: name(pk) und passwort.
was braucht ihr noch an infos ?
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Illegal operation on emty result set

Beitrag von DPunch »

Aloha

Ich kann den Fehler leider nicht reproduzieren (MySQL-Server, OOBase über ODBC als Frontend, Tablle mit den zwei Spalten, Eingabe über Formular).
Vielleicht hängt irgendwo doch noch ein Trigger in der Datenbank, den Du schlichtweg vergessen hast?
(SQL-Abfrage -> SQL direkt ausführen -> SHOW TRIGGERS)

Erstell doch mal eine neue Tabelle mit dem gleichen Aufbau und lass von vornherein die Trigger weg und schau mal, ob der Fehler immer noch auftritt.
Alternativ verseh die Tabelle mit einem auto_increment als PK und pack auf den Benutzernamen einfach einen UNIQUE-Constraint.
nahemoth
**
Beiträge: 29
Registriert: Do, 20.08.2009 08:27

Re: Illegal operation on emty result set

Beitrag von nahemoth »

ahm, ich sehe dort kein "show triggers", schon in oobase oder im mysql-server ?

thx !
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Illegal operation on emty result set

Beitrag von DPunch »

Aloha

Sorry, hätte ich erwähnen sollen:
SHOW TRIGGERS ist eine ganz "normale" Abfrage auf die Datenbank selber, wie ein SELECT auf eine Tabelle.
Also einfach in Base eine Abfrage in SQL-Ansicht öffnen, in der Symbolleiste "SQL direkt ausführen" aktivieren und als Statement nur "SHOW TRIGGERS" eingeben.
nahemoth
**
Beiträge: 29
Registriert: Do, 20.08.2009 08:27

Re: Illegal operation on emty result set

Beitrag von nahemoth »

hm, da zeigt er aber dann keinen trigger an
AndreasJBittner
*****
Beiträge: 473
Registriert: Fr, 09.10.2009 16:44
Wohnort: Bielefeld
Kontaktdaten:

Re: Illegal operation on emty result set

Beitrag von AndreasJBittner »

Na, rate mal, warum!
LO 4.3
AMD Athlon 64 3700+, 2.21 GHz, 4 GB RAM, Win XP SP3
iMac 2 GHz, 16 GB RAM/MacBookPro, 8 GB RAM, Mac OS X 10.9.5
Intel Core2 Quad CPU Q6600 @ 2,4 GHz, 4 GB RAM, Suse 13.2

MySQL 5.1: Pentium III, 666 MHz, 512 MB, Suse 12.1
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Illegal operation on emty result set

Beitrag von DPunch »

Ok, das schliesst dann einen vergessenen Trigger schonmal aus.

Bliebe noch, mal meine Alternativvorschläge auszuprobieren.
nahemoth
**
Beiträge: 29
Registriert: Do, 20.08.2009 08:27

Re: Illegal operation on emty result set

Beitrag von nahemoth »

müsste er da net den vorhandenen trigger, der die md5-codierung vornimmt ausgeben ?
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Illegal operation on emty result set

Beitrag von DPunch »

Das kannst allein Du wissen ;)
Wir wissen nicht, ob es den Trigger überhaupt noch gibt, ob Du in der richtigen Datenbank bist, ob Du dort im richtigen Katalog bist etc. ;)

Im Zweifelsfalle direkt über die MySQL-Konsole gehen, dort die Datenbank explizit auswählen und dann nochmal den Befehl absetzen.
Antworten