Wie führen Sie eine gespeicherte Prozedur in Subsonic 3.0 aus, die einen Wert zurückgibt? Zum Beispiel geben viele meiner gespeicherten Prozeduren @@ identity zurück, und ich kann nicht herausfinden, wie ich auf diesen Wert zugreifen kann, ohne die Tabelle erneut abzufragen. Auch dies ist kein Ausgabeparameter, sondern ein Rückgabewert.Subsonic 3 - Wie führen Sie eine gespeicherte Prozedur aus, die einen Wert zurückgibt?
Antwort
StoredProcedure sproc = db.FancySchmancySproc();
sproc.Execute();
int output = (int)sproc.Output; // returns type 'object' so you'll need to cast
Das ist, was ich dachte, aber sproc.output ist immer null. Ich frage mich, ob es ein Fehler in der neuesten Version 3.0.0.3
StoredProcedure sp = SPs.TestProcedure(0);
sp.Command.AddReturnParameter();
object retValue = sp.Command.Parameters.Find(delegate(QueryParameter p)
{
return p.Mode == ParameterDirection.ReturnValue;
}).ParameterValue;
if (retValue!=null)
{
// cast the value to the type expected
int rc = (int) retValue;
}
StoredProcedure sproc = db.FancySchmancySproc();
sproc.ExecuteDataSet();
Dies funktioniert für mich:
StoredProcedure sproc = db.FancySchmancySproc();
sproc.ExecuteScalar<int>();
Ok ... ich hatte es arbeitet mit dem, was John Sheehan sagte, plötzlich es hat gerade angefangen, mir eine Ausnahme zu geben.
Ich teste gerade mit dem folgenden SP.
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE TestLocal
@a numeric (18,0) AS
BEGIN
SET NOCOUNT ON;
return 10
END
GO
und meinen Code in C# ist die folgende
StoredProcedure sp = new DB(). TestLocal (1) ;
sp.Execute();
int timeLeft = (int) sp.Output;
RücklaufzeitLinks;
Edit 1:
Ich habe es, indem Sie folgende arbeiten, aber ich glaube nicht, das ist der richtige Weg, es zu tun.
StoredProcedure sp = neuer DB(). TestLocal (1);
sp.Command.AddReturnParameter();
sp.Execute();
int meinReturnValue = (int) sp.Command.Ausgabewerte [0];
Rückgabe myReturnValue;
Ich habe gespeicherte Procs mit ActiveRecord wie folgt ausgeführt;
// Connect to DB and run the stored proc into a dataset
myDatabasedb db = new myDatabasedb();
DataSet ds = db.myStoredProc(firstparam, secondparam, etc);
// Now you can do what you like with the dataset!
Gridview1.datasource = ds.executeDataSet();
- 1. SSIS-Paket - Führen Sie eine gespeicherte Prozedur
- 2. Wie führen Sie eine gespeicherte Prozedur mit Castle ActiveRecord aus?
- 3. Gespeicherte Prozedur Wählen Sie aus 3 Tabellen
- 4. SubSonic 3.0 gespeicherte Prozedur Generation
- 5. Gespeicherte MySQL-Prozedur, die mehrere Datensätze zurückgibt
- 6. Wie schreibe ich eine postgres gespeicherte Prozedur, die nichts zurückgibt?
- 7. Gespeicherte Prozedur, die den erwarteten Wert nicht zurückgibt
- 8. SSIS: wie man eine E-Mail sendet, wenn eine gespeicherte Prozedur einen bestimmten Wert zurückgibt
- 9. Gespeicherte SQL Server-Prozedur, die einen booleschen Wert zurückgibt, wenn die Tabelle vorhanden ist C# implementation
- 10. wie gespeicherte Prozedur in CakePHP 3 ausführen?
- 11. Gespeicherte Prozedur, die eine andere gespeicherte Prozedur ausführt
- 12. TSQL: rufen Sie eine gespeicherte Prozedur aus einer anderen gespeicherten Prozedur und lesen Sie das Ergebnis
- 13. Führen Sie eine gespeicherte Prozedur asynchron aus einem Windows-Formular aus, und trennen Sie dann die Verbindung?
- 14. Die gespeicherte Prozedur gibt einen VarChar zurück
- 15. So führen Sie eine gespeicherte Prozedur in einer Select-Abfrage aus
- 16. Kann eine gespeicherte T-SQL-Prozedur einen Wert aus einer Subauswahl auswählen
- 17. So führen Sie SubSonic3 StoredProcedure mit Rückgabewert aus
- 18. Wie führe ich eine gespeicherte Prozedur aus Preparestatement aus
- 19. Übergeben Sie Funktion Wert an gespeicherte Prozedur in MS SQL
- 20. Führen Sie eine asynchrone Suche durch, die ObservableCollection zurückgibt
- 21. Anrufdaten-spezifische gespeicherte Prozedur von Oracle-Prozedur
- 22. MySQL gespeicherte Prozedur Rückgabewert
- 23. Übergeben Sie Array in eine gespeicherte Prozedur
- 24. Gespeicherte Prozedur
- 25. Führen Sie gespeicherte Prozeduren auf SqlFiddle aus. Mysql
- 26. Wie führe ich eine gespeicherte Prozedur fortlaufend aus?
- 27. Wie aus einer Tabelle neuer gespeicherte Prozedur
- 28. SQL-CLR gespeicherte Prozedur gibt keinen Wert
- 29. Wie kann ich eine gespeicherte Prozedur definieren, die Werte in mysql zurückgibt
- 30. Führen Sie JavaScript-Code nur aus, wenn die Funktion 'beforeunload' den Wert true zurückgibt