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

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - Programmierung » .NET-Anwendungsprogrammierung » SQL Anywhere .NET-Datenprovider » Datenzugriff und Datenverarbeitung

 

Umgang mit BLOBs

Bei einem Fetch langer Zeichenfolgenwerte oder von Binärdaten stehen Methoden bereit, mit den Sie Daten in Teilen abrufen können. Verwenden Sie bei Binärdaten die GetBytes-Methode, bei Zeichenfolgendaten die GetChars-Methode. Sonst werden BLOB-Daten in derselben Art verarbeitet wie andere Daten, die Sie aus der Datenbank abrufen.

Weitere Hinweise finden Sie unter GetBytes-Methode und GetChars-Methode.

 ♦  So führen Sie mit der GetChars-Methode eine Anweisung aus, die eine Zeichenfolge zurückgibt
  1. Deklarieren und initialisieren Sie ein Connection-Objekt.

  2. Öffnen Sie die Verbindung.

  3. Fügen Sie ein Command-Objekt hinzu, um eine SQL-Anweisung zu definieren und auszuführen.

    SACommand cmd = new SACommand(
        "SELECT int_col, blob_col FROM test", conn );
  4. Rufen Sie die ExecuteReader-Methode auf, um das DataReader-Objekt zurückzugeben.

    SADataReader reader = cmd.ExecuteReader();

    Der folgende Beispielcode liest die beiden Spalten aus der Ergebnismenge ein. Die erste Spalte hat den Datentyp INTEGER (GetInt32( 0 )), die zweite LONG VARCHAR. GetChars wird benutzt, um jeweils 100 Zeichen aus der LONG VARCHAR-Spalte einzulesen.



    int length = 100;
    char[] buf = new char[ length ];
    int intValue;
    long dataIndex = 0;
    long charsRead = 0;
    long blobLength = 0;
    while( reader.Read() ) {
        intValue = reader.GetInt32( 0 );
        while ( ( charsRead = reader.GetChars(
            1, dataIndex, buf, 0, length ) ) == ( long )
                length ) {
        dataIndex += length;
    }
    blobLength = dataIndex + charsRead;
    }
  5. Schließen Sie die DataReader- und Connection-Objekte.

    reader.Close();
    conn.Close();