Sie können mit dem SQL Anywhere-.NET-Datenprovider gespeicherte Prozeduren verwenden. Die ExecuteReader-Methode wird benutzt, um gespeicherte Prozeduren aufzurufen, die eine Ergebnismenge zurückgeben, während die ExecuteNonQuery-Methode benutzt wird, um gespeicherte Prozeduren aufzurufen, die keine Ergebnismenge zurückgeben. Die ExecuteScalar-Methode wird benutzt, um gespeicherte Prozeduren aufzurufen, die nur einen einzelnen Wert zurückgeben.
Wenn Sie eine gespeicherte Prozedur aufrufen, müssen Sie ein SAParameter-Objekt erstellen. Verwenden Sie ein Fragezeichen als Platzhalter für Parameter:
sp_producttype( ?, ? ) |
Weitere Hinweise zum Parameter-Objekt finden Sie im Abschnitt SAParameter-Klasse.
Deklarieren und initialisieren Sie ein SAConnection-Objekt.
SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 12 Demo" ); |
Öffnen Sie die Verbindung.
conn.Open(); |
Fügen Sie ein SACommand-Objekt hinzu, um eine SQL-Anweisung zu definieren und auszuführen. Der nachstehende Beispielcode benutzt die CommandType-Eigenschaft, um die Anweisung als gespeicherte Prozedur zu identifizieren.
SACommand cmd = new SACommand( "ShowProductInfo", conn ); cmd.CommandType = CommandType.StoredProcedure; |
Wenn Sie die CommandType-Eigenschaft nicht angeben, müssen Sie ein Fragezeichen als Platzhalter für Parameter verwenden:
SACommand cmd = new SACommand( "call ShowProductInfo(?)", conn ); cmd.CommandType = CommandType.Text; |
Fügen Sie ein SAParameter-Objekt hinzu, um die Parameter für die gespeicherte Prozedur zu definieren. Sie müssen ein neues SAParameter-Objekt für jeden Parameter erstellen, der von der gespeicherten Prozedur benötigt wird.
SAParameter param = cmd.CreateParameter(); param.SADbType = SADbType.Int32; param.Direction = ParameterDirection.Input; param.Value = 301; cmd.Parameters.Add( param ); |
Weitere Hinweise zum Parameter-Objekt finden Sie im Abschnitt SAParameter-Klasse.
Rufen Sie die ExecuteReader-Methode auf, um das DataReader-Objekt zurückzugeben. Die Get-Methoden werden benutzt, um die Ergebnisse im angegebenen Datentyp zurückzugeben.
SADataReader reader = cmd.ExecuteReader(); reader.Read(); int ID = reader.GetInt32(0); string name = reader.GetString(1); string description = reader.GetString(2); decimal price = reader.GetDecimal(6); |
Schließen Sie das SADataReader- und das SAConnection-Objekt.
reader.Close(); conn.Close(); |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |