Discussion:
[TYPO3-german] Extbase Queries und Stored Procedures
g4-lisz
2014-02-27 23:14:49 UTC
Permalink
Hallo,

kann mir jemand sagen, ob ich bei Extbase Repositories in der query auch
stored procedures aufrufen kann, also etwa:

$query = $this->createQuery();
$query->statement('CALL SP_Search_Behandlung(?,?)',
array($demand->getLeistungsgruppe(), trim($demand->getPlzort())) );
return $query->execute();

Eine direkte Abfrage via $GLOBALS['TYPO3_DB']->sql_query("CALL...");
liefert mir Ergebnisse.
Unter Extbase kriege ich aber einen Rattenschwanz von
Fehlermeldungungen, alle in der Art: t3lib_DB::exec_DELETEquery ,
Commands out of sync; you can't run this command now

Kann man das mit einem Trick beheben? Stored procedures w?ren in meinem
Fall sehr praktisch...

Gr??e,
Till
Eddy Wolbert
2014-02-28 09:10:30 UTC
Permalink
Hallo Till,

soweit mir bekannt ist, funktionieren auch stored procedures in
Repositories.
Speziell zum verwendeten Call-Befehl kann ich jetzt nicht sagen, aber
mit einem "handels?blichen" Select tut die Sache, z.B.

$query->statement(
'SELECT * FROM blablamodel WHERE name LIKE ? AND plz IN ?',
array('%Liste%', array(6000,7000))
);

Vielleicht h?ngt es ja an deinen Arrays?

Gr??e
Eddy
Post by g4-lisz
Hallo,
kann mir jemand sagen, ob ich bei Extbase Repositories in der query auch
$query = $this->createQuery();
$query->statement('CALL SP_Search_Behandlung(?,?)',
array($demand->getLeistungsgruppe(), trim($demand->getPlzort())) );
return $query->execute();
Eine direkte Abfrage via $GLOBALS['TYPO3_DB']->sql_query("CALL...");
liefert mir Ergebnisse.
Unter Extbase kriege ich aber einen Rattenschwanz von
Fehlermeldungungen, alle in der Art: t3lib_DB::exec_DELETEquery ,
Commands out of sync; you can't run this command now
Kann man das mit einem Trick beheben? Stored procedures w?ren in meinem
Fall sehr praktisch...
Gr??e,
Till
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
g4-lisz
2014-02-28 12:36:55 UTC
Permalink
Hi Eddy,

Stored Procedures lassen sich nur mit dem CALL aufrufen...

Ich habe die halbe Nacht recherchiert und musste leider feststellen,
dass kaum zu machen ist. Bei 6.x ginge es wohl mit einem Hack, da hier
"schon" mysqli benutzt wird, aber beu 4.x habe ich keinen L?sungsansatz
gefunden. H?chstens den, dass man die DB-Connection nach jeder Abfrage
schlie?t und wieder neu ?ffnet. Das ist aber bestimmt nicht sehr
f?rderlich f?r die Performance.

Prinzipiell geht es darum, dass der Puffer zu Results-Handlern gel?scht
werden sollte, bevor eine weitere Abfrage an die DB-geschickt wird.

Ich werde nun wohl versuchen, die Abfragen durch Views zu ersetzen oder
das Ganze in eine eID-Aufruf zu exportieren, was dann aber wohl an den
Bildern scheitert, weil ich dann den GIFBUILDER ben?tige...

Gr??e,
Till
Post by Eddy Wolbert
Hallo Till,
soweit mir bekannt ist, funktionieren auch stored procedures in
Repositories.
Speziell zum verwendeten Call-Befehl kann ich jetzt nicht sagen, aber
mit einem "handels?blichen" Select tut die Sache, z.B.
$query->statement(
'SELECT * FROM blablamodel WHERE name LIKE ? AND plz IN ?',
array('%Liste%', array(6000,7000))
);
Vielleicht h?ngt es ja an deinen Arrays?
Gr??e
Eddy
Post by g4-lisz
Hallo,
kann mir jemand sagen, ob ich bei Extbase Repositories in der query auch
$query = $this->createQuery();
$query->statement('CALL SP_Search_Behandlung(?,?)',
array($demand->getLeistungsgruppe(), trim($demand->getPlzort())) );
return $query->execute();
Eine direkte Abfrage via $GLOBALS['TYPO3_DB']->sql_query("CALL...");
liefert mir Ergebnisse.
Unter Extbase kriege ich aber einen Rattenschwanz von
Fehlermeldungungen, alle in der Art: t3lib_DB::exec_DELETEquery ,
Commands out of sync; you can't run this command now
Kann man das mit einem Trick beheben? Stored procedures w?ren in meinem
Fall sehr praktisch...
Gr??e,
Till
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Loading...