call procedure z Kdyby\Doctrine

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pitr82
Člen | 121
+
0
-

Zdravím, jak zavolám proceduru (mysql) za použití Kdyby\Doctrine ?

Darkling
Člen | 35
+
0
-

Ahoj,

zkus něco jako

$em->createNativeQuery('CALL your_procedure()')->execute(); // $em - EntityManager

snad by mělo fungovat, nezkoušel jsem to. Více zde http://www.doctrine-project.org/…queries.html

Editoval Darkling (2. 6. 2016 10:48)

pitr82
Člen | 121
+
0
-

@Darkling procedura se provede, ale nevím, jak dostat výstupní hodnoty :-(

$stmt =$this->em->getConnection()->prepare('CALL MyProcedure(@out_name)');
$stmt->execute();
Darkling
Člen | 35
+
0
-

Pokud potřebuješ dostat zpět výsledek, tak místo metody execute() zavolej getResult(). Pokud má být výsledkem entita/y, tak to budeš muset nějak namapovat pomocí ResultSetMapping viz předchozí odkaz. Pokud je vrácená hodnota scalar, můžeš zkusit getScalarResult().

Edit:
Ono nejde použít createNativeQuery()?

Editoval Darkling (3. 6. 2016 12:10)