Android ProgrammingAuf das Bild klicken um zur Hauptseite zurückzukehren.


SQL

Die SQL Library erlaubt SQL Datenbanken zu erstellen und zu behandeln.
Siehe das SQL tutorial Englisch und das SQL Tutorial Deutsch, für mehr Informationen.

Liste der Types:

Cursor
SQL


Cursor

 

Events:

Keine

Members:


  Close

  ColumnCount As Int [read only]

  GetBlob (ColumnName As String) As Byte()

  GetBlob2 (Index As Int) As Byte()

  GetColumnName (Index As Int) As String

  GetDouble (ColumnName As String) As Double

  GetDouble2 (Index As Int) As Double

  GetInt (ColumnName As String) As Int

  GetInt2 (Index As Int) As Int

  GetLong (ColumnName As String) As Long

  GetLong2 (Index As Int) As Long

  GetString (ColumnName As String) As String

  GetString2 (Index As Int) As String

  IsInitialized As Boolean

  Position As Int

  RowCount As Int [read only]

Members Erklärungen:

Close

Schließt den Cursor und gibt Resourcen frei.

ColumnCount As Int [read only]

Gibt die Anzahl der verfügbaren Spalten im Ergebnis.

GetBlob (ColumnName As String) As Byte()

Gibt den Blob zurück der in der Spalte Namens ColumName gespeichert ist.
Beispiel:

Dim Buffer() As Byte
Buffer = Cursor.GetBlob(
"col1")

GetBlob2 (Index As Int) As Byte()

Gibt den Blob zurück der in der Spalte mit dem gegebenen Index gespeichert ist.

Beispiel:
Dim Buffer() As Byte
Buffer = Cursor.GetBlob2(
0)

GetColumnName (Index As Int) As String

Gibt den Namen der Spalte mit dem gebenen Index zurück.
Der erste Spaltenindex ist 0.

GetDouble (ColumnName As String) As Double

Gibt den Double Wert zurück der in der Spalte Namens ColumName gespeichert ist.
Der Wert wird in ein Double konvertiert wenn der Wert eines anderen Types ist.
Beispiel:

Log(Cursor.GetDouble(
"col2"))

GetDouble2 (Index As Int) As Double

Gibt den Double Wert zurück der in der Spalte mit dem gegebenen Index gespeichert ist.
Der Wert wird in ein Double konvertiert wenn der Wert eines anderen Types ist.
Beispiel:

Log(Cursor.GetDouble2(
0))

GetInt (ColumnName As String) As Int

Gibt den Int (Integer) Wert zurück der in der Spalte Namens ColumName gespeichert ist..
Der Wert wird in ein Int konvertiert wenn der Wert eines anderen Types ist.
Beispiel:

Log(Cursor.GetInt(
"col2"))

GetInt2 (Index As Int) As Int

Gibt den Int (Integer) Wert zurück der in der Spalte mit dem gegebenen Index gespeichert ist.
Der Wert wird in ein Int konvertiert wenn der Wert eines anderen Types ist.
Beispiel:

Log(Cursor.GetInt2(
0))

GetLong (ColumnName As String) As Long

Gibt den Long Wert zurück der in der Spalte Namens ColumName gespeichert ist..
Der Wert wird in ein Long konvertiert wenn der Wert eines anderen Types ist.
Beispiel:

Log(Cursor.GetLong(
"col2"))

GetLong2 (Index As Int) As Long

Gibt den Long Wert zurück der in der Spalte mit dem gegebenen Index gespeichert ist.
Der Wert wird in ein Long konvertiert wenn der Wert eines anderen Types ist.
Beispiel:

Log(Cursor.GetLong2(
0))

GetString (ColumnName As String) As String

Gibt den String Wert zurück der in der Spalte Namens ColumName gespeichert ist..
Der Wert wird in ein String konvertiert wenn der Wert eines anderen Types ist.
Beispiel:

Log(Cursor.GetString(
"col2"))

GetString2 (Index As Int) As String

Gibt den String Wert zurück der in der Spalte mit dem gegebenen Index gespeichert ist.
Der Wert wird in ein String konvertiert wenn der Wert eines anderen Types ist.
Beispiel:

Log(Cursor.GetString2(
0))

IsInitialized As Boolean

Position As Int

Holt oder setzt die aktuelle Stelle (Zeile / row).
Beachten Sie daß die Startposition des Curors die von einer Query (Anfrage) zurückgegeben wird -1 ist.
Die erste gültige Stelle ist 0.
Beispiel:

Dim Cursor As Cursor
Cursor = SQL1.ExecQuery(
"SELECT col1, col2 FROM table1")
For i = 0 To Cursor.RowCount - 1
    Cursor.Position = i
    Log(Cursor.GetString(
"col1"))
    Log(Cursor.GetInt(
"col2"))
Next
Cursor.Close

RowCount As Int [read only]

Gibt die Anzahl der verfügbaren Zeilen im Ergebnis


SQL

Das Hauptobjekt das auf die Datenbank zugreift.

Events:

Keine

Members:


  BeginTransaction

  Close

  EndTransaction

  ExecNonQuery (Statement As String)

  ExecNonQuery2 (Statement As String, Args As List)

  ExecQuery (Query As String) As android.database.Cursor

  ExecQuery2 (Query As String, StringArgs() As String) As android.database.Cursor

  ExecQuerySingleResult (Query As String) As String

  ExecQuerySingleResult2 (Query As String, StringArgs() As String) As String

  Initialize (Dir As String, FileName As String, CreateIfNecessary As Boolean)

  IsInitialized As Boolean

  TransactionSuccessful

Members Erklärungen:

BeginTransaction

Beginnt eine Transaction. Eine Transaction ist ein Satz von Schreibanweisungen die automatisch übermittelt werden bis alle Änderungen gemacht wurden oder keine Änderungen gemacht wurden.

Diese Anweisungen werden deutlich schneller ausgeführt (im Standardfall wird implizit eine Transaction für jede Anweisung erstellt).
Es ist sehr wichtig, Transaction sorgfältig durchzuführen und zu schlie
ßen.
Die Transaktion wird als erfolgreich angesehen, nur wenn TransactionSuccessful aufgerufen wird. Ansonsten werden keine Änderungen vorgenommen.

Typische Anwendung:
SQL1.BeginTransaction
Try
    
'block of statements like:
    For i = 1 to 1000
        SQL1.ExecNonQuery(
"INSERT INTO table1 VALUES(...)
    Next
    SQL1.TransactionSuccessful
Catch
    Log(LastException.Message)
'no changes will be made
End Try
SQL1.EndTransaction

Close

Schließt die Datenbank.
Macht nichts wenn die Datenbank nicht geöffnet ist oder vorher nicht geschlossen wurde.

EndTransaction

Ende der Transaction.

ExecNonQuery (Statement As String)

Führt eine einzige 'non query' (ohne Anfrage) SQL Anweisung aus.

Beispiel:
SQL1.ExecNonQuery(
"CREATE TABLE table1 (col1 TEXT , col2 INTEGER, col3 INTEGER)")
Wenn man viele Schreibanweisungen ("writing" queries), Eine nach der Anderen machen will, ist es vorteilhaft BeginTransaction / EndTransaction zu benutzten.
Dies wird viel schneller durchgeführt.

ExecNonQuery2 (Statement As String, Args As List)

Führt eine einzige 'non query' SQL Anweisung aus.
Die Anweisung kann Fragezeichen enthalten die durch die Inhalte der gegebenen Liste ersetzt werden.
Beachten Sie daß Basic4android Arrays automatisch zu Listen konvertiert.
Die Werte in der Liste können Strings, Zahlen oder Bytearrays sein.
Beispiel:

SQL1.ExecNonQuery2(
"INSERT INTO table1 VALUES (?, ?, 0)", Array As Object("some text", 2))

ExecQuery (Query As String) As android.database.Cursor

Führt die 'query' Anfrage durch und gibt einen Cursor zurück der benutzt wird die Resultate zu lesen.
Beispiel:

Dim Cursor As Cursor
Cursor = SQL1.ExecQuery(
"SELECT col1, col2 FROM table1")
For i = 0 To Cursor.RowCount - 1
    Cursor.Position = i
    Log(Cursor.GetString(
"col1"))
    Log(Cursor.GetInt(
"col2"))
Next

ExecQuery2 (Query As String, StringArgs() As String) As android.database.Cursor

Führt die 'query' Anfrage durch und gibt einen Cursor zurück der benutzt wird die Resultate zu lesen.
Die Anfrage kann Fragezeichen enthalten die durch die Inhalte der gegebenen Liste ersetzt werden.
Beispiel:

Dim Cursor As Cursor
Cursor = sql1.ExecQuery2(
"SELECT col1 FROM table1 WHERE col3 = ?", Array As String(22))
SQLite wird versuchen die Stringwerte in den Type der Spalten zu konvertieren.

ExecQuerySingleResult (Query As String) As String

Führt die 'query' Anfrage durch und gibt den Wert der ersten Spalte und ersten Zeile zurück (im Resultatensatz).
Gibt Null zurück wenn kein Resultat gefunden wurde.
Beispiel:

Dim NumberOfMatches As Int
NumberOfMatches = SQL1.ExecQuerySingleResult(
"SELECT count(*) FROM table1 WHERE col2 > 300")

ExecQuerySingleResult2 (Query As String, StringArgs() As String) As String

Führt die 'query' Anfrage durch und gibt den Wert der ersten Spalte und ersten Zeile zurück (im Resultatensatz).
Die Anfrage kann Fragezeichen enthalten die durch die Inhalte der gegebenen Liste ersetzt werden.

Gibt Null zurück wenn kein Resultat gefunden wurde.
Beispiel:

Dim NumberOfMatches As Int
NumberOfMatches = SQL1.ExecQuerySingleResult2(
"SELECT count(*) FROM table1 WHERE col2 > ?", Array As String(300))

Initialize (Dir As String, FileName As String, CreateIfNecessary As Boolean)

Öffner die Datenbankdatei. Eine neue Datenbank wird erstellt Falls sie nicht existiert und CreateIfNecessary gleich True ist.
WICHTIG: Dieses Objekt muß in Sub Process_Globals deklariert werden.
Beispiel:

Dim SQL1 As SQL
SQL1.Initialize(File.InternalDir,
"MyDb.db", True)

IsInitialized As Boolean

Testet ob die Datenbank initialisiert und geöffnet ist.

TransactionSuccessful

Markiert die Transaction als eine erfolgreich durchgeführte Transaction.

Keine weitere Anweisung darf durchgeführt werden bevor EndTransaction aufgerufen wurde.


Top