Diese Klasse repräsentiert die aktuelle Datenbank-Verbindung, die standardmäßig die zur ersten geöffneten Datenbank ist. Sie können die Datenbank-Verbindung ändern, indem Sie den Wert der Eigenschaft `DB.Current` modifizieren.
Die Klasse DB verfügt über die folgenden Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Charset | String | Gibt den von der Datenbank verwendeten Zeichensatz zurück. |
Current | Connection | Setzt die aktuelle DB-Verbindung oder gibt die aktuelle DB-Verbindung zurück. |
Debug | Boolean | Legt mit True fest, dass die Datenbank-Komponente in den Debugging-Modus versetzt wird. Wenn dieses Flag gesetzt ist, so wird jede Datenbank-Abfrage auf der Standard-Fehlerausgabe ausgegeben. |
Error | Integer | Gibt den Fehler-Code des letzten, vom Datenbank-Treiber ausgelösten Fehler zurück. |
Handle | Pointer | Gibt den Zeiger auf die Standard-Datenbank-Verbindung zurück. Dies ist ein Zeiger auf das zugrundeliegende Objekt - assoziiert mit der Standard-Datenbank-Verbindung. |
IgnoreCharset | Boolean | Gibt True zurück, wenn der Datenbank-Zeichensatz ignoriert werden soll oder setzt den Wert der Eigenschaft. |
Opened | Boolean | Gibt True zurück, wenn die aktuelle DB-Verbindung geöffnet ist. |
Databases | .Connection.Databases | Gibt eine Übersicht aller Datenbanken zurück, die vom DB-Server verwaltet werden. |
Users | .Connection.Users | Gibt eine Übersicht der DB-Benutzer in einer Datenbank zurück. |
Tables | .Connection.Tables | Gibt eine Übersicht der verwalteten Tabellen in einer Datenbank zurück. |
Tabelle 22.4.3.1.1 : Eigenschaften der Klasse DB
Die Klasse .Connection.Databases repräsentiert eine Sammlung aller Datenbanken, die vom Datenbank-Server verwaltet werden. Möglicherweise sehen Sie nicht jede Datenbank, wenn der Benutzer, mit dem Sie sich mit dem Server verbunden haben, nicht über ausreichende Rechte verfügt.
Die Klasse .Connection.Tables stellt eine Übersicht aller Tabellen der Datenbank bereit, zu der Sie sich mit dem Verbindungsobjekt verbunden haben.
Die Klasse .Connection.Users liefert eine Übersicht aller registrierten DB-Benutzer auf dem DB-Server. SQLite-Datenbanken jedoch haben keine speziellen DB-Benutzer; sie akzeptieren jeden Benutzer, weil ein ausgewiesenes Sicherheitskonzept fehlt.
Die Klasse DB verfügt über diese Methoden:
Methode | Beschreibung |
---|---|
Begin ( ) | Startet eine Transaktion. |
Close ( ) | Schließt eine bestehende DB-Verbindung zwischen DB-Client und DB-Server. |
Open ( ) | Öffnet eine (neue) Verbindung zu der in den Verbindungseigenschaften angegebenen Datenbank. Die Open()-Methode besitzt keine Parameter. Deshalb sind die Verbindungseigenschaften vor dem Aufruf Open()-Methode einzustellen. |
Commit ( ) | Änderungen am Datenbestand werden übernommen. |
Rollback ( ) | Änderungen am Datenbestand während einer Sitzung werden zurückgenommen. |
Delete ( Table As String [ , Request As String, Arguments As , … ] ) | Löscht Datensätze aus einer DB-Tabelle (Umsetzung einer SQL-Anweisung…). Table ist der Name der DB-Tabelle. Request ist eine SQL-WHERE-Klausel zum Filtern der Tabelle und Arguments werden gemäß der SQL-Syntax in Anführungszeichen gesetzt und innerhalb der Abfragezeichenfolge ersetzt. |
Edit ( Table As String [ , Request As String, Arguments As , … ] ) As Result | Gibt ein Lese/Schreib-Ergebnis-Objekt für das Editieren von Datensätzen in der angegebenen Tabelle zurück. Table ist der Name der DB-Tabelle. Request ist eine SQL-WHERE-Klausel zum Filtern der Tabelle und Arguments werden gemäß der SQL-Syntax in Anführungszeichen gesetzt und innerhalb der Abfragezeichenfolge ersetzt. |
Exec ( Request As String, Arguments As , … ) As Result | Führt eine beliebige SQL-Anfrage aus und gibt das Ergebnis der Anfrage als ein Nur-Lese-Ergebnis zurück. Request ist jede valide SQL-Anweisung und Arguments werden gemäß der SQL-Syntax in Anführungszeichen gesetzt und innerhalb der Abfragezeichenfolge ersetzt. |
Find ( Table As String [ , Request As String, Arguments As , … ] ) As Result | Gibt ein schreibgeschütztes Ergebnisobjekt zurück, das zur Abfrage von Datensätzen in der angegebenen Tabelle verwendet wird. Table ist der Name der DB-Tabelle. Request ist eine SQL-WHERE-Klausel zum Filtern der Tabelle und Arguments werden gemäß der SQL-Syntax in Anführungszeichen gesetzt und innerhalb der Abfragezeichenfolge ersetzt. |
Function Limit ( Limit As Integer ) As Connection | Begrenzt die Anzahl der Datensätze, die von der nächsten Abfrage zurückgegeben werden. Nachdem die Abfrage ausgeführt wurde, wird das Limit automatisch aufgehoben. Der Funktionswert ist vom Typ Connection, so dass Sie etwa Folgendes schreiben können: DB.Limit(12).Exec(…). |
FormatBlob ( Data As String ) As String | Formatiert einige Blob-Daten so, dass sie in eine SQL-Abfrage eingefügt werden können. |
Quote ( Name As String [ , Table As Boolean ] ) As String | Gibt einen Bezeichner in Anführungszeichen zurück, so dass Sie ihn frei in eine Abfrage einfügen können. Dieser Bezeichner kann ein Tabellen- oder ein Feldname sein. |
Function Subst ( Format As String, Arguments As , … ) As String | Erzeugt einen SQL-Satz, indem seine Argumente in eine Format-Zeichenkette eingesetzt werden. Format ist die SQL-Anweisung und Arguments ist die Liste der zu ersetzenden Argumente. |
Tabelle 22.4.3.2.1 : Methoden der Klasse DB
Beispiel
DIM $hDBConnecton As NEW Connection WITH $hDBConnecton .Type = "postgresql" .Host = "localhost" .Login = "loginname" .Password = "password" .Port = "5432" .Name = "testdb" END WITH TRY $hDBConnecton.Open() IF Error THEN PRINT "Cannot Open Database! Error = "; Error.Text
Hinweise:
Mit der Methode Delete(…), können Sie SQL-Anweisungen schreiben, die unabhängig vom zugrunde liegenden Datenbanktyp sind. Ein nicht zu unterschätzender Vorteil, wenn es um die Entwicklung und den Test wiederverwendbarer Software geht. Sobald Sie das Ergebnis-Objekt erhalten haben, können Sie einige der Felder ändern. Danach können Sie die Result.Update()-Methode aufrufen, um die Änderungen an die Datenbank zu senden.
DIM hResult AS Result DIM sCriteria AS String DIM iParemeter AS Integer sCriteria = "id = &1" iParameter = 1012 $hDBConnecton.Begin() '-- Same as "SELECT * FROM table_name WHERE id = 1012" hResult = $hDBConnecton.Edit("table_name", sCriteria, iParameter) '-- Set field value hResult!Name = "Mayer" '-- Update the value hResult.Update() $$hDBConnecton.Commit()
'-- Gibt die Anzahl der Datensätze in einer Abfrage zurück. sTable ist der Name der Tabelle. '-- Er kann reservierte Zeichen enthalten, daher müssen Sie ihn in Anführungszeichen setzen! rResult = Handle.Exec("SELECT COUNT(*) AS nRecord FROM " & DB.Quote(sTable, True)) PRINT rResult!nRecord
PRINT DB.Subst("WHERE Name = &1 AND Date = &2", "Mayer-Motzen", Now())
Artikel