Seite 1 von 1

Qt und Gespeicherte Prozeduren in Datenbanken.

Verfasst: 3. November 2005 12:04
von BartSimpson
Hallo, ich wollte gespeicherte Prizeduren einsetzen um das das Programm übersichlicher zu gestalten. Doch leider weigert sich Qt.:(
So hatte ich es versucht:

Code: Alles auswählen

QSqlQuery Abfrage(Datenbankverbindung);
	Abfrage.prepare("CALL ListeAllerLiefererNachName()");
	if(!Abfrage.exec())
	{
		ok=false;
		Fehler=Abfrage.lastError().databaseText() +"\r\n"+Abfrage.lastError().driverText();
	}
doch leider klappt das nicht. An den Eingabeauffordrung der Datenbank funktioniert die Funktion. Es wird MySQL 5 benutzt.
Ich erhalte den Fehler: Can't return a result set in the given context.
Prozeduren die Datensätze anlegen funktionieren. Nur welche die welche zurückliefern streiken.

Verfasst: 3. November 2005 13:28
von maxel
Hey,
der SQL-Aufruf dürfte "Select 'ListeAllerLiefererNachName'();" heißen

Verfasst: 3. November 2005 14:07
von BartSimpson
select geht nicht. da es keine funktion sondern eine prozedur ist.
denn bei selct kommt die Fehlermeldung das es die Funktion nicht gibt. Was ja auch korrekt ist. Da es ja eine Prozedure ist.

Verfasst: 3. November 2005 15:35
von maxel
bei PSQL geht es mit dem Ausdruck

select "Funtkionsname"(Variable);

Wenn die Funktion nicht existiert, kann es auch daran liegen, das der Text auf Kleinschreibung umgewandelt wird. Siehe Logfile.
Dann mußt du den Ausdruck korrekt in Anführgunszeichen setzen

Verfasst: 3. November 2005 16:07
von BartSimpson
mit dem Select hatte ich es an der Konsole versucht. Und es geht nicht. Call Prozedurename ist schon ok.