Ich bin in einer Situation, wo ich einen Aufruf zu einer gespeicherten Prozedur von Rails machen müssen. Ich kann es tun, aber es bricht entweder die MySQL-Verbindung, oder ist ein Pseudo-Hack, der seltsame Änderungen an den gespeicherten Prozessen erfordert . Außerdem kann der Pseudo-Hack keine großen Datenmengen zurückgeben.
Im Moment besteht meine Lösung darin, Folgendes zu verwenden system()
und rufen die mysql
Befehlszeile direkt. Ich denke, dass eine weniger traurige Lösung wäre, meine eigene MySQL-Verbindung unabhängig von der Verbindung von Active Record zu öffnen.
Ich wüsste keinen Grund, warum das schlecht sein sollte. Aber ich kenne auch die Innereien von MySQL nicht gut genug, um zu wissen, dass es 100% sicher ist.
Es würde mein Problem ordentlich lösen, dass mit dem Controller-Aktionen, die eine gespeicherte proc aufrufen müssen würde eine neue Datenbankverbindung öffnen, machen den Aufruf und schließen Sie es. Ich könnte einige Leistung zu opfern, aber wenn es funktioniert, das ist gut genug. Es löst auch das Problem der mehrere Benutzer in den gleichen Prozess (wir verwenden Mongrel, derzeit) in Edge-Rails, wo es jetzt endlich Thread sicher ist, wie der Hack zwei SQL-Abfragen erfordert und ich glaube nicht, dass ich garantieren kann, ich bin mit der gleichen Datenbankverbindung über Active Record.
Ist dies also eine schlechte Idee und/oder gefährlich?