Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » .NET-Anwendungsprogrammierung » SQL Anywhere .NET-Datenprovider

 

Gespeicherte Prozeduren verwenden

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, die Parameter erfordert, müssen Sie SAParameter-Objekte erstellen.

 Ausführen einer gespeicherten Prozedur
  1. Deklarieren und initialisieren Sie ein SAConnection-Objekt.

    SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 12 Demo" );
  2. Öffnen Sie die Verbindung.

    conn.Open();
  3. 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;
  4. Fügen Sie ein SAParameter-Objekt hinzu, das einen Parameter für die gespeicherte Prozedur zum SACommand-Objekt definiert. Sie müssen ein neues SAParameter-Objekt erstellen und zum SACommand-Objekt für jeden Parameter hinzufügen, der von der gespeicherten Prozedur benötigt wird.

    SAParameter param = cmd.CreateParameter();
    param.SADbType = SADbType.Integer;
    param.Direction = ParameterDirection.Input;
    param.Value = 301;
    cmd.Parameters.Add( param );

    Weitere Hinweise zum SAParameter-Objekt finden Sie unter SAParameter-Klasse [SQL Anywhere .NET].

  5. Rufen Sie die ExecuteReader-Methode auf, um das SADataReader-Objekt zurückzugeben. Die Get-Methoden werden benutzt, um die Ergebnisse im angegebenen Datentyp zurückzugeben. Das Argument der Get-Methoden ist der Spaltenindex (beginnend mit 0 für Spalte 1).

    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);
  6. Schließen Sie das SADataReader- und das SAConnection-Objekt.

    reader.Close();
    conn.Close();
 Alternative für den Aufruf einer gespeicherten Prozedur