Bücher online kostenlos Kostenlos Online Lesen
Adobe Air (wiwobooks.com Release)

Adobe Air (wiwobooks.com Release)

Titel: Adobe Air (wiwobooks.com Release) Kostenlos Bücher Online Lesen
Autoren:
Vom Netzwerk:
myDBConn;
selectStmt.addEventListener(SQLErrorEvent.ERROR, handleStmtError); selectStmt.addEventListener(SQLEvent.RESULT, handleStmtResult); var sql:String = "UPDATE main.test_table SET name = 'Gruber' " +
    "WHERE name = 'Pfeiffer'";
selectStmt.text = sql;
selectStmt.execute();
    function handleStmtResult(e:SQLEvent):void {
var stmt:SQLStatement = SQLStatement(e.target); var result:SQLResult = stmt.getResult();
trace(result.rowsAffected + " Datensatz/-sätze geändert.");
    }
function handleStmtError(e:SQLErrorEvent):void { trace("Hoppla, da ist bei einem SQL
    Statement etwas schiefgelaufen.");
trace("Fehler: " + e.text);
trace("Details: " + e.error.details);
    }
Listing 13.12 Beispiel: Aktualisierung von Daten in einer Datenbanktabelle
13.6.6 Daten löschen
    Auch das Löschen von Datensätzen, das mithilfe des SQL-Statements DELETE vorgenommen wird, schränkt die zu löschenden Datensätze in der Regel mit einer WHERE-Klausel ein (ansonsten löschen Sie alle Datensätze):
    DELETE FROM main.myTable WHERE name = 'Gruber'
    Wenn die Löschabfrage erfolgreich war, wird das Ereignis SQLEvent.RESULT ausgelöst und in der Eigenschaft rowsAffected der SQLResult -Instanz wird die Anzahl der betroffenen (= gelöschten) Zeilen zurückgegeben.
    Lösungsweg
1. Erstellen einer SQLStatement -Instanz
    2. Zuweisen der offenen Datenbankverbindung zur Eigenschaft s qlConnection der SQLStatement -Instanz
3. Asynchroner Zugriff: Registrieren von Event-Listenern für SQLEvent.RESULT und SQLErrorEvent.ERROR
    4. Definition des DELETE-Statements als Text und dessen Zuweisung zur Eigenschaft text
5. Bei Verwendung von Parametern: Setzen der Parameter im (assoziativen) Array parameters
    6. Aufruf der Methode execute() der SQLStatement -Instanz
7. Abruf des Ergebnisses als SQLResult -Instanz mithilfe der SQLStatement -Instanzmethode getResult() im Ereignis-Listener für SQLEvent.RESULT 8. Auswerten des Ergebnisses mithilfe der SQLResult -Eigenschaft rowsAffected
So geht es
Im folgenden Quelltextausschnitt wird der Datensatz der Datenbank test_table gelöscht, deren Datenfeld name die Zeichenkette Gruber enthält:
    import flash.data.SQLConnection;
import flash.data.SQLStatement;
import flash.data.SQLResult;
import flash.events.SQLEvent;
import flash.events.SQLErrorEvent;
var selectStmt:SQLStatement = new SQLStatement();
// myDBConn ist zu diesem Zeitpunkt bereits geöffnet
// (hier nicht gezeigt)
selectStmt.sqlConnection = myDBConn;
selectStmt.addEventListener(SQLErrorEvent.ERROR, handleStmtError); selectStmt.addEventListener(SQLEvent.RESULT, handleStmtResult); var sql:String = "DELETE FROM main.test_table " +
    "WHERE name = 'Gruber' ";
selectStmt.text = sql;
selectStmt.execute();
    function handleStmtResult(e:SQLEvent):void {
var stmt:SQLStatement = SQLStatement(e.target); var result:SQLResult = stmt.getResult();
trace(result.rowsAffected + " Datensatz/-sätze gelöscht.");
    }
function handleStmtError(e:SQLErrorEvent):void { trace("Hoppla, da ist bei einem SQL
    Statement etwas schiefgelaufen."); trace("Fehler: " + e.text);
trace("Details: " + e.error.details);
    }
Listing 13.13 Beispiel: Löschen von Daten in einer Datenbanktabelle
13.6.7 Vorbereitete SQL-Statements verwenden
    Besonders wenn Sie die gleiche Datenbankoperation wiederholt verwenden, können Sie die Datenoperationen durch gezieltes »SQL-Statement-Recycling« beschleunigen. Wie andere SQL-Dialekte auch, bietet SQLite hierzu vorbereitete Statements (prepared statements) an. Ohne vorbereitete Statements können Sie sich das so vorstellen: Sobald Sie der SQLStatement -Instanz ein Statement als text zugewiesen haben, können Sie diesen Text als Abfrage an die Datenbank schicken. Wenn Sie die gleiche Operation mehrmals ausführen, aber jedes Mal den Statement-Text mit den aktuellen Abfragewerten aktualisieren müssen, muss stets das komplette Statement neu berechnet werden. Um nicht jedes Mal das gesamte Statement neu errechnen lassen zu müssen, sondern nur den sich ändernden Teil, gibt es das Instrument der vorbereiteten Statements.
    Lösungsweg
1. Erstellen einer SQLStatement -Instanz
    2. Asynchroner Zugriff: Definition von Ereignis-Listenern für SQLEvent.COMPLETE und SQLErrorEvent.ERROR
3. Definition des SQL-Statements als Zeichenkette mit Platzhaltern für sich ändernde Werte. Gültige Platzhalter:
    Fragezeichen für einen unbenannten Platzhalter
Doppelpunkt ( : ), gefolgt von einem Namen für den Platzhalter Klammeraffe ( @ ), gefolgt von einem Namen für den Platzhalter
    4.

Weitere Kostenlose Bücher