Freigeben über


Aktualisieren mehrerer Tabellen in einer Ansicht

Eine Ansicht ermöglicht das Aktualisieren mehrerer Basistabellen. Wenn Sie eine Ansicht haben, die zwei oder mehrere Tabellen kombiniert, sollten Sie verschiedene Eigenschaften setzen, um sicherzustellen, dass nur die n-Seite der Ansichtsabfrage aktualisierbar ist.

Ansichten werden Tabelle für Tabelle aktualisiert. Sie müssen sicherstellen, dass bei jeder Tabelle, auf die durch eine Ansicht zugegriffen wird, das Schlüsselfeld ein eindeutiger Schlüssel sowohl im Resultset der Ansicht als auch in der Basistabelle ist.

So machen Sie eine Ansicht aus mehreren Tabellen aktualisierbar

  • Klicken Sie im Ansichts-Designer auf die Registerkarte Aktualisierungskriterien, und wählen Sie dann die Tabellen- und Feldnamen, die aktualisiert werden sollen.

    - Oder -

  • Verwenden Sie die DBSETPROP( )-Funktion.

In den meisten Fällen ist eine Ansicht, die auf mehreren Tabellen basiert, bereits durch die von Visual FoxPro verwendeten Standardwerte aktualisierbar, auch wenn die Ansicht programmgesteuert erstellt wird. Das folgende Codebeispiel erstellt für eine Ansicht, die auf zwei Tabellen basiert, die Aktualisierungseigenschaften und stellt diese explizit ein. Dieses Beispiel können Sie als Richtlinie für das Anpassen der Aktualisierungseigenschaften einer Ansicht verwenden.

Aktualisieren mehrerer Tabellen in einer Ansicht

Code Kommentar
CREATE SQL VIEW emp_cust_view AS ;
   SELECT employee.emp_id, ;
   employee.phone, customer.cust_id, ;
   customer.emp_id, customer.contact, ;
   customer.company ;
   FROM employee, customer ;
   WHERE employee.emp_id = customer.emp_id
Erstellt eine Ansicht, die auf Felder aus zwei Tabellen zugreift.
DBSETPROP('emp_cust_view', 'View', 'Tables',
'employee, customer')
Richtet die Tabellen als aktualisierbar ein.
DBSETPROP('emp_cust_view.emp_id', 'Field', ;                'UpdateName', 'employee.emp_id')
DBSETPROP('emp_cust_view.phone', 'Field', ;                'UpdateName', 'employee.phone')
DBSETPROP('emp_cust_view.cust_id', 'Field', ;             'UpdateName', 'customer.cust_id')
DBSETPROP('emp_cust_view.emp_id1', 'Field', ;             'UpdateName', 'customer.emp_id')
DBSETPROP('emp_cust_view.contact', 'Field', ;             'UpdateName', 'customer.contact')
DBSETPROP('emp_cust_view.company', 'Field', ;             'UpdateName', 'customer.company')
Richtet die Aktualisierungsnamen ein.
DBSETPROP('emp_cust_view.emp_id', 'Field', ;                'KeyField', .T.)
Richtet einen eindeutigen Schlüssel, bestehend aus einem Feld, für die Tabelle Employee ein.
DBSETPROP('emp_cust_view.cust_id', 'Field', ;
            'KeyField', .T.)
DBSETPROP('emp_cust_view.emp_id1', 'Field', ;
            'KeyField', .T.)
Richtet einen eindeutigen Schlüssel, bestehend aus zwei Feldern, für die Tabelle Customer ein.
DBSETPROP('emp_cust_view.phone', 'Field', ; 
            'UpdateableField', .T.)
DBSETPROP('emp_cust_view.contact', 'Field', ;             'UpdateableField', .T.)
DBSETPROP('emp_cust_view.company', 'Field', ;             'UpdateableField', .T.)
Richtet die aktualisierbaren Felder ein. In der Regel sind Schlüsselfelder nicht aktualisierbar.
DBSETPROP('emp_cust_view', 'View', ;
            'SendUpdates', .T.)
Aktiviert die Aktualisierungsfunktion.
GO TOP
REPLACE employee.phone WITH "(206)111-2222"
REPLACE customer.contact WITH "John Doe"
Ändert die Daten in der Ansicht.
TABLEUPDATE()
Bestätigt die Änderungen durch Aktualisieren der Basistabellen Employee und Customer.

Anpassen von Ansichten mit Hilfe des Datadictionary (Datenwörterbuch)

Da Ansichten in einer Datenbank gespeichert werden, können Sie Folgendes erstellen und festlegen:

  • Beschriftungen
  • Kommentare für die Ansicht und die Felder der Ansicht
  • Standardwerte für Ansichtsfelder
  • Regeln auf Feld- und Datensatzebene sowie Fehlermeldungen für die Regeln

Die Funktionen des Datadictionary (Datenwörterbuch) für Ansichten entsprechen den Funktionen des Datadictionary für Datenbanktabellen. Jedoch werden die Beschriftungen, Kommentare, Standardwerte und Regeln für Ansichten mit der Programmiersprache und nicht mit dem Tabellen-Designer festgelegt.

Siehe auch

Aktualisieren von Daten mit Hilfe einer Ansicht | Festlegen von Standardwerten für die Felder einer Ansicht | Erstellen von Regeln für Felder und Datensätze einer Ansicht | Ansichts-Designer | DBSETPROP( ) | Aktualisieren von Daten | Anpassen von Ansichten