Datentabelle <dbDataTable>

Zusammenfassung

DbDataTable ist ein Intent-Design zum Lesen aus einer Datenquelle, die speicherinterne Änderungen an Daten vornimmt und schließlich ein Massenupdate der Datenquelle anhand der Daten im Speicher durchführt. Das Design DbDataTable implementiert den getrennten Modus von ADO.NET. dbDataTable kann folgende Aktionen durchführen: Erstmaliges Auffüllen der Speichertabelle mit den Ergebnissen einer SELECT-Anweisung über die Methode Fill(), Zugreifen auf die Metadaten über die Regel ColumnNames, Bestimmen der Zeilenanzahl über die Regel RowCount, Zugreifen auf die Daten über die Methoden GetFieldValue() oder GetRowFieldValues(), Hinzufügen neuer Zeilen in der Speichertabelle über die Methode AddRow(), Löschen von Zeilen aus der Speichertabelle über die Methode DeleteRow(), Ändern von Datenwerten in den Zeilen über die Methoden SetFieldValue() oder SetRowFieldValues(), Massenupdate der Datenquelle über die Methode Update().

ADO.NET-Designs setzen voraus, dass dbDataTable-Teile untergeordnete Elemente von dbConnection sind.

Parameter

Name Typ Beschreibung
connection Part Verbindungsteil, in der Regel ein übergeordnetes Element
TableName String Erforderlich: Gewünschter Name der Datenspeichertabelle
SelectCommandText String Erforderlich: SQL-Anweisung

Regeln

Name Typ Beschreibung
RowCount Integer Anzahl der Datensätze in der Datentabelle
ColumnNames list Liste der Spaltennamen

Methoden

Fill( ) As Any
Stellt die Verbindung zur Datenquelle her und füllt die Speichertabelle mit den Daten auf
GetFieldValue( Row as Integer, Column as Any ) As Any
Gibt den Wert an einer angegebenen nullbasierten Zeilennummer und Spalte zurück. Die Spalte ist eine Zeichenfolge oder eine nullbasierte Spaltennummer.
GetRowFieldValues( Row As Integer ) As List
Gibt die Liste der Werte an einer angegebenen nullbasierten Zeile zurück
AddRow( fieldValues As List, _
        Optional update? As Boolean = False ) As Any
Fügt eine neue Zeile in die Datentabelle ein. Die Werte werden aus der Liste gelesen. Die Reihenfolge der Werte muss den Spaltennamen der Datentabelle entsprechen. Wenn die Änderung sofort in die Datenquelle übertragen werden soll, rufen Sie die Methode mit update? :=True auf.
SetFieldValue( Row As Integer, _
               Column as Any, _
               Value As Any, _
               Optional update? As Boolean = False ) As Any
Legt einen neuen Wert für das Feld fest. Die Zeile ist eine nullbasierte Ganzzahl; die Spalte ist entweder eine nullbasierte Ganzzahl oder die Zeichenfolge mit dem Spaltennamen. Wenn die Änderung sofort in die Datenquelle übertragen werden soll, rufen Sie die Methode mit update?:=True auf.
SetRowFieldValues( Row As Integer, _
                   Values As List, _
                   Optional update? As Boolean = False ) As Any
Legt die vorhandene Zeile mit den neuen Werten fest. Die Zeile ist eine nullbasierte Ganzzahl. Die Reihenfolge der Werte muss der Reihenfolge der Spalten in der Datentabelle entsprechen. Wenn die Änderung sofort in die Datenquelle übertragen werden soll, rufen Sie die Methode mit update?:=True auf.
DeleteRow( Row As Integer, _
           Optional update? As Boolean = False ) As Any
Löscht die Zeile (nullbasiert) aus der Datentabelle. Wenn die Änderung sofort in die Datenquelle übertragen werden soll, rufen Sie die Methode mit update?:=True auf.
Update( Optional refresh? As Boolean = True ) As Any
Überträgt alle Änderungen an der Datentabelle in die Datenquelle. Der Inhalt der Datentabelle kann wahlweise aktualisiert werden.

Änderungen an der Datenbank

In diesem Fall wird das Ergebnis in einer Ergebnismenge zurückgegeben.

Untergeordneter Name: spRun
Untergeordnetes Design: DbQueryCommand
Name Typ Angegeben
connection Part Root.sqlServerConnection
tableName String MemoryTable
SelectCommandText String SELECT * From CarsTable
Intent >AddRow({100,"Tatra","White","Czech"}) ?Add new car
--> True
Intent >DeleteRow(1) ?Delete ?Lada? car
--> True
Intent >SetFieldValue(4,"Comments","Italian") ?Change Italia->Italian
--> True
Intent >Update() ?Bulk update
--> True