42
Wizards & Wizards & Builders Builders GmbH GmbH Datenbankcontainer Datenbankcontainer Datenbankcontainer in Datenbankcontainer in Microsoft Visual FoxPro Microsoft Visual FoxPro

Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Embed Size (px)

Citation preview

Page 1: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

DatenbankcontainerDatenbankcontainer

Datenbankcontainer inDatenbankcontainer inMicrosoft Visual FoxProMicrosoft Visual FoxPro

Page 2: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Diese Schulung dient zur Einführung der Schulungsteilnehmer in die Arbeit mit Datenbankcontainer (im Vergleich

zu Einzeltabellen) in Visual FoxPro

Page 3: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

ThemenübersichtThemenübersicht

Datenbankcontainer (Sinn/Struktur)Datenbankcontainer (Sinn/Struktur) Arbeiten mit dem DatenbankcontainerArbeiten mit dem Datenbankcontainer Grundbefehle des Grundbefehle des

DatenbankcontainersDatenbankcontainers Tabellen und Felder im DBCTabellen und Felder im DBC Buffering und BuffermodeBuffering und Buffermode TransaktionenTransaktionen Referentielle IntegritätReferentielle Integrität Trigger (Insert, Update, Delete, Fehler)Trigger (Insert, Update, Delete, Fehler)

Page 4: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

DatenbankcontainerDatenbankcontainer

Datenbankcontainer fassen Datenbankcontainer fassen „freie Tabellen“ zu einer „freie Tabellen“ zu einer

Datenbank zusammen und Datenbank zusammen und verwalten die Metadatenverwalten die Metadaten

Page 5: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

DatenbankcontainerDatenbankcontainer

Ein DBC ist kein Data-Dictionary!Ein DBC ist kein Data-Dictionary! Tabellenstrukturen im DBF-HeaderTabellenstrukturen im DBF-Header Indexstrukturen im CDX-HeaderIndexstrukturen im CDX-Header Verwaltet ZusatzinformationenVerwaltet Zusatzinformationen

zu Feldern und Tabellen (nicht „freie“ zu Feldern und Tabellen (nicht „freie“ Tabellen)Tabellen)

Verwaltet persistente Relationen Verwaltet persistente Relationen Verwaltet referentielle IntegritätVerwaltet referentielle Integrität

Page 6: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Logische BestandteileLogische Bestandteile

tables tables

local views local views

remote views remote views

connections connections

indexes indexes

relations relations

rules / triggers rules / triggers

stored procedures stored procedures

Page 7: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Physische BestandteilePhysische Bestandteile

DBC DCTDCX

DBC DCTDCX

DBF1 DBF1

FPT1 FPT1

CDX1 CDX1

DBFn DBFn

FPTn FPTn

CDXn CDXn

DBF2 DBF2

FPT2 FPT2 CDX2 CDX2

Page 8: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Arbeiten mit dem DBCArbeiten mit dem DBC

Anlegen einer TabelleAnlegen einer Tabelle FeldeigenschaftenFeldeigenschaften

Anlegen einer Relation (Drag & Drop)Anlegen einer Relation (Drag & Drop) Anlegen einer Ansicht (View)Anlegen einer Ansicht (View)

FeldeigenschaftenFeldeigenschaften

Anlegen einer Verbindung (Connection)Anlegen einer Verbindung (Connection) Anlegen einer Remote Ansicht (View)Anlegen einer Remote Ansicht (View)

Page 9: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Tabellen im DBCTabellen im DBC

CREATE TABLECREATE TABLE ALTER TABLEALTER TABLE ADD TABLEADD TABLE REMOVE TABLEREMOVE TABLE FREE TABLE (!)FREE TABLE (!) CLOSE TABLECLOSE TABLE INDBC( )INDBC( )

VALID RULEVALID RULE VALID TEXTVALID TEXT CAPTIONCAPTION COMMENTCOMMENT UPD TRIGGER ()UPD TRIGGER () INS TRIGGER ()INS TRIGGER () DEL TRIGGER ()DEL TRIGGER ()

Page 10: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Felder im DBCFelder im DBC

FORMATFORMAT MASKMASK CAPTIONCAPTION

VALID RULEVALID RULE VALID TEXTVALID TEXT DEFAULTDEFAULT

CLASSCLASS CLASSLIBSCLASSLIBS

COMMENTCOMMENT

Optionen Optionen beachten!beachten!(Klassenzuordnung)(Klassenzuordnung)

Page 11: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

ValidierungenValidierungen

Feld-Ebene:Feld-Ebene: VALID-FunktionVALID-Funktion FehlermeldungFehlermeldung

Wahlweise Wahlweise Funktion oder Funktion oder KonstanteKonstante

Default-Wert Default-Wert dazu!dazu!

Satz-Ebene:Satz-Ebene: für Validierung für Validierung

über mehrere über mehrere FelderFelder

ansonsten siehe ansonsten siehe Feld-ValidierungFeld-Validierung

Trigger kommen als Trigger kommen als separates Themaseparates Thema

Page 12: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Gespeicherte Prozeduren (1)Gespeicherte Prozeduren (1)

Gehören imanent zu den Tabellen Gehören imanent zu den Tabellen und wird als Prozedur-Datei gesetzt!und wird als Prozedur-Datei gesetzt!

Werden auch über ODBC ausgeführt!Werden auch über ODBC ausgeführt! Verwendet für:Verwendet für:

Feld-Validierung, Feld-FehlermeldungFeld-Validierung, Feld-Fehlermeldung Satz-Validierung, Satz-FehlermeldungSatz-Validierung, Satz-Fehlermeldung Feld-Default-WertFeld-Default-Wert Trigger-AufrufeTrigger-Aufrufe

Page 13: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Gespeicherte Prozeduren (2)Gespeicherte Prozeduren (2)

Kompilate in DBC-Datensatz sind Kompilate in DBC-Datensatz sind versionsabhängig (VFP 3.0, 5.0 / versionsabhängig (VFP 3.0, 5.0 / 6.0) - d.h. Neukompilieren (!)6.0) - d.h. Neukompilieren (!) ggf. ausgelagerte Prozedurdatei verwendenggf. ausgelagerte Prozedurdatei verwenden

Tabellen/Felder finden „richtige“ Tabellen/Felder finden „richtige“ Prozedurdatei - eigene Anwendung Prozedurdatei - eigene Anwendung verwendet aber nur aktiven DBC!verwendet aber nur aktiven DBC! Set database toSet database to Namenskonventionen für DBC-Funktionen!Namenskonventionen für DBC-Funktionen!

Page 14: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Views im DBCViews im DBC

Felder Felder (Ausdrücke)(Ausdrücke)

VerknüpfungVerknüpfung FilterFilter SortierungSortierung GruppierungGruppierung AktualisierungAktualisierung VerschiedenesVerschiedenes

Schlüssel setzenSchlüssel setzen Felder setzenFelder setzen SQL-Update setzenSQL-Update setzen Where-KlauselWhere-Klausel

Schlüssel Schlüssel änderbar!änderbar!

Feldeigenschaften!Feldeigenschaften!

Page 15: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Struktur des DBCStruktur des DBC

OBJECTIDOBJECTID PARENTIDPARENTID OBJECTTYPE =>OBJECTTYPE => OBJECTNAMEOBJECTNAME PROPTERY (M)PROPTERY (M) CODE (M)CODE (M) RIINFORIINFO USER (M)USER (M)

Objekt-Typen:Objekt-Typen: DATABASEDATABASE TABLETABLE FIELDFIELD INDEXINDEX VIEWVIEW CONNECTIONCONNECTION

Page 16: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Grundbefehle DBC (1)Grundbefehle DBC (1)

CREATE DATACREATE DATA OPEN DATAOPEN DATA MODIFY DATAMODIFY DATA CLOSE DATACLOSE DATA DELETE DATADELETE DATA

PACK DATAPACK DATA sortiert Schlüssel neu!sortiert Schlüssel neu!

VALIDATE DATAVALIDATE DATA Zeigt manche Fehler Zeigt manche Fehler

nur!nur!

SET DATA TOSET DATA TO

Achtung: Achtung: Projektmanager kann Projektmanager kann DBC offenhalten!DBC offenhalten!

Info-Funktionen:Info-Funktionen: DBC()DBC() DBUSED()DBUSED()

Page 17: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Grundbefehle DBC (2)Grundbefehle DBC (2)

Anzeigefunktionen:Anzeigefunktionen: LIST DATABASELIST DATABASE LIST TABLESLIST TABLES LIST VIEWSLIST VIEWS LIST LIST

CONNECTIONSCONNECTIONS LIST PROCEDURELIST PROCEDURE

Sonstige Sonstige Funktionen:Funktionen:

ADATABASES( )ADATABASES( ) ADBOBJECTS( )ADBOBJECTS( )

Eigenschaften Eigenschaften ändern:ändern:

DBGETPROP( )DBGETPROP( ) DBSETPROP( )DBSETPROP( )

Page 18: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

DbGetProp( ) / DbSetProp( )DbGetProp( ) / DbSetProp( )

DatenbankenDatenbanken TabellenTabellen Felder in Felder in

TabellenTabellen AnsichtenAnsichten Felder in Felder in

AnsichtenAnsichten VerbindungenVerbindungen

Page 19: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

StrukturänderungenStrukturänderungen

Eigenlösungen:Eigenlösungen:

Neuen DBC mit Neuen DBC mit geänderten geänderten Tabellen Tabellen versendenversenden

SQL Alter Table-SQL Alter Table-Befehl versendenBefehl versenden Keine Primary Keys in Keine Primary Keys in

VFP 3.0 / VFP 5.0 !VFP 3.0 / VFP 5.0 !

Fremdlösungen:Fremdlösungen:

XCASE-ZusatztoolXCASE-Zusatztool SDT-Zusatztool SDT-Zusatztool

(Stonefield Database (Stonefield Database Toolkit)Toolkit)

Page 20: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Hinweise zum DBCHinweise zum DBC

Separates Datadictionary notwendigSeparates Datadictionary notwendigfür Reindizierung od. Neuerzeugungfür Reindizierung od. Neuerzeugung wahlweise Eigenbau, XCase oder Stonefieldwahlweise Eigenbau, XCase oder Stonefield wahlweise GENDBCX als Minimal-Lösungwahlweise GENDBCX als Minimal-Lösung

Tabellen und DBC sind eine EinheitTabellen und DBC sind eine Einheit Immer zusammen sichern / ändernImmer zusammen sichern / ändern

FREE TABLE mit Vorsicht!FREE TABLE mit Vorsicht!

Page 21: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BufferingBuffering

Buffering dient zur Buffering dient zur Zwischenspeicherung von Zwischenspeicherung von

ÄnderungenÄnderungen

Page 22: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Prinzip des BufferingPrinzip des Buffering

OLDVAL-Puffer

OLDVAL-Puffer

Methode zum automatischen Puffern von Methode zum automatischen Puffern von Daten zwischen einer Eingabe-Maske und der Daten zwischen einer Eingabe-Maske und der DBF-Datei auf der FestplatteDBF-Datei auf der Festplatte

Eingabe-Maske

Eingabe-Maske

Daten-PufferDaten-Puffer

DBF-DateiDBF-Datei

Page 23: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

TablebufferingTablebuffering

TABLEREVERT()TABLEREVERT() TABLEUPDATE()TABLEUPDATE()

CURSOR-CURSOR-GETPROP()GETPROP()

CURSOR-CURSOR-SETPROP()SETPROP()

CURVAL()CURVAL() OLDVAL()OLDVAL() GETNEXT-GETNEXT-

MODIFIED()MODIFIED()

GETFLDSTATE()GETFLDSTATE() SETFLDSTATE()SETFLDSTATE()

Page 24: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Tableupdate / TablerevertTableupdate / Tablerevert

Parameter für Parameter für Tableupdate( )Tableupdate( )

------ EinzelsatzEinzelsatz .T..T. bis 1. Fehlerbis 1. Fehler 22 alle die alle die

gehengehen .T..T. Forced Forced

UpdateUpdate

Parameter für Parameter für Tablerevert( )Tablerevert( )

EinzelsatzEinzelsatz Alle ÄnderungenAlle Änderungen

Schließen = Schließen = Revert!Revert!

Page 25: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BuffermodeBuffermode

Buffermodes:Buffermodes: 1-None1-None 2-Pessimistic Row2-Pessimistic Row 3-Pessimistic 3-Pessimistic

TableTable 4-Optimistic Row4-Optimistic Row 5-Optimistic Table5-Optimistic Table Row: Row:

Skip = Update (!)Skip = Update (!)

Optimistic:Optimistic: Record changed!Record changed! Curval/Oldval()Curval/Oldval() GetFldState()GetFldState()

Table-Buffering:Table-Buffering: Getnextmodified()Getnextmodified()

Page 26: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Funktionen im EinsatzFunktionen im Einsatz

Beispiele:Beispiele:

? GetFldState(-1) != Repl(„1“,Fcount()+1)? GetFldState(-1) != Repl(„1“,Fcount()+1)

? Left( GetFldState(-1),1) != „1“? Left( GetFldState(-1),1) != „1“

Goto ( GetNextModified( Recno() ) )Goto ( GetNextModified( Recno() ) )

? Field( At( „2“, GetFldState(-1) ) )? Field( At( „2“, GetFldState(-1) ) )

? SetFldState( „Feld“, 1 )? SetFldState( „Feld“, 1 ) && Views!&& Views!

Achtung: Negative Record-Nummern!Achtung: Negative Record-Nummern!

Page 27: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

ReihenfolgeReihenfolge

Tabellenfeld-Valid (alle Felder)Tabellenfeld-Valid (alle Felder) Masken-Valid (aktuelles Element)Masken-Valid (aktuelles Element) Datensatz-Valid(ierung)Datensatz-Valid(ierung) Primary/Candidate-SchlüsselPrimary/Candidate-Schlüssel TriggerTrigger

kaskadierend über alle Childskaskadierend über alle Childs Achtung: _TRIGGERLEVEL kann hoch werdenAchtung: _TRIGGERLEVEL kann hoch werden

Page 28: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

CursorGetProp( ) / CSetProp( CursorGetProp( ) / CSetProp( ))

Allgemein:Allgemein: Buffering (ein- /ausschalten, abfragen, Wert 1-5)Buffering (ein- /ausschalten, abfragen, Wert 1-5) Caption (Auslesen Text für Feldlabel zur Laufzeit)Caption (Auslesen Text für Feldlabel zur Laufzeit)

nur für Views (Auch im View-Designer):nur für Views (Auch im View-Designer): CompareMemoCompareMemo UpdatableUpdatable Updatable Field ListUpdatable Field List Where TypeWhere Type

Page 29: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Vorsicht Falle!Vorsicht Falle!

Allgemeine Probleme:Allgemeine Probleme:

GETNEXTMODIFIED / GETNEXTMODIFIED / GETFIELDSTATE() => GETFIELDSTATE() => erst Feld verlassen!erst Feld verlassen!

SetFldState( ) bei SetFldState( ) bei Views mit Requery()Views mit Requery()

Table changedTable changedim View-Designer im View-Designer sofern alle Felder sofern alle Felder gewählt wurden (*)gewählt wurden (*)

Sonderfall: Sonderfall:

Buffered Views auf Buffered Views auf Buffered Tables!Buffered Tables!

Row: Fehler erst beim Row: Fehler erst beim nächsten Satz!nächsten Satz!

Tablerevert: Revert im Tablerevert: Revert im View versagtView versagt

Primary Key doppelt: Primary Key doppelt: Letzter gilt!Letzter gilt!

Page 30: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

TransaktionenTransaktionen

Transaktionen dienen dem Transaktionen dienen dem vollständigen Abspeichern vollständigen Abspeichern

einer Gruppe von Datensätzeneiner Gruppe von Datensätzen

Page 31: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

TransaktionenTransaktionen

BEGIN TRANSBEGIN TRANS *-- Datenzugriff*-- Datenzugriff

END TRANSEND TRANS ROLLBACKROLLBACK

Absturz = RollbackAbsturz = Rollback Rollback bei Öffnen!Rollback bei Öffnen!

TXNLEVEL()TXNLEVEL() bis 5 Ebenen tief!bis 5 Ebenen tief! Äußerste Ebene Äußerste Ebene

zählt!zählt!

Experimente mit Experimente mit Transaktionen:Transaktionen:

1 Tabelle1 Tabelle 2 Tabellen aus DBC2 Tabellen aus DBC Verschiedene DBCsVerschiedene DBCs Freie TabellenFreie Tabellen GeschachteltGeschachtelt Task-Manager!Task-Manager!

Page 32: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Probleme bei TransaktionenProbleme bei Transaktionen

Buffering eingeschaltet = Transaktion Buffering eingeschaltet = Transaktion läuft nur auf Buffer und nicht auf Platte!läuft nur auf Buffer und nicht auf Platte!

Buffering ausgeschaltet = Transaktion Buffering ausgeschaltet = Transaktion läßt Einschalten Buffering nicht zu!läßt Einschalten Buffering nicht zu! Dadurch ggf. neue Sätze nicht anlegbar (Valid)Dadurch ggf. neue Sätze nicht anlegbar (Valid)

Lösung möglicherweise Buffering mit Lösung möglicherweise Buffering mit Tableupdate und dann END TRANSTableupdate und dann END TRANS

Freie Tabellen ohne Meldung!Freie Tabellen ohne Meldung! Deadlocks möglich - Zugriffsreihenfolge!Deadlocks möglich - Zugriffsreihenfolge!

Page 33: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Zugriffsreihenfolge (Deadlocks!)Zugriffsreihenfolge (Deadlocks!)

Tabellen nach Parent->ChildTabellen nach Parent->Child Immer erst den Parent sperrenImmer erst den Parent sperren notfalls per SQL-Select erst die Parents holennotfalls per SQL-Select erst die Parents holen

Datensätze nach PrimärschlüsselDatensätze nach Primärschlüssel notfalls per SQL-Select umsortierennotfalls per SQL-Select umsortieren

Mehrere Parents ggf. alphabetischMehrere Parents ggf. alphabetisch sofern Parents nicht in Parent-Child-Beziehungsofern Parents nicht in Parent-Child-Beziehung

Page 34: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Referentielle IntegritätReferentielle Integrität

RI dient zur Wahrung der RI dient zur Wahrung der inhaltlichen Konsistenz inhaltlichen Konsistenz Beziehungen zwischen Beziehungen zwischen

TabellenTabellen

Page 35: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Referentielle Integrität (RI)Referentielle Integrität (RI)

Programmatisch:Programmatisch: CREATE TRIGGERCREATE TRIGGER DELETE TRIGGERDELETE TRIGGER _TRIGGERLEVEL_TRIGGERLEVEL

Arten von Triggern:Arten von Triggern: DELETEDELETE UPDATEUPDATE INSERTINSERT

Bedeutung der Bedeutung der Referentiellen Referentiellen Integrität einer Integrität einer DatenbankDatenbank

Arbeiten mit dem Arbeiten mit dem Referential Referential Integrity Integrity BuilderBuilder

Page 36: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

DELETE-TriggerDELETE-Trigger

Auslöser:Auslöser: DELETE-BefehlDELETE-Befehl

Nicht bei ZAP (!)Nicht bei ZAP (!) Gefährlich!!!Gefährlich!!!

Nicht bei PACKNicht bei PACK(da Sätze (da Sätze gelöscht)gelöscht)

Verhalten:Verhalten: CASCASECASCASE

Cascading DeleteCascading Delete

RESTRICTRESTRICT sofern Parent vorh.sofern Parent vorh.

IGNOREIGNORE

Page 37: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

INSERT-TriggerINSERT-Trigger

Auslöser:Auslöser: APPEND FROMAPPEND FROM APPEND BLANKAPPEND BLANK IMPORTIMPORT INSERT-SQLINSERT-SQL

RECALL (!)RECALL (!)

Verhalten:Verhalten: RESTRICTRESTRICT

Child nur zu ParentChild nur zu Parent

IGNOREIGNORE

INSERT INSERT unzulässigunzulässig

Page 38: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

UPDATE-TriggerUPDATE-Trigger

Auslöser:Auslöser: GATHERGATHER REPLACEREPLACE REPLACE FROMREPLACE FROM UPDATE-SQLUPDATE-SQL

nicht bei nicht bei DELETED() (!)DELETED() (!)

Verhalten:Verhalten: CASCADECASCADE

Schlüssel zu ChildsSchlüssel zu Childs

RESTRICTRESTRICT Parentschlüssel Parentschlüssel

gesperrtgesperrt

IGNOREIGNORE

Page 39: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Probleme mit TriggernProbleme mit Triggern

Im Gegensatz zu Im Gegensatz zu Feld-Valid und Feld-Valid und Satz-Valid ist ein Satz-Valid ist ein Triggerfehler ein Triggerfehler ein endgültiger endgültiger Fehler!Fehler!

Das heißt:Das heißt: VFP macht VFP macht

Rollback über alle Rollback über alle EbenenEbenen

Probleme:Probleme: Ändern von Daten!Ändern von Daten!

Update-Update-Endlosschleife...Endlosschleife...

Compound KeysCompound Keys Verschiedene DBCsVerschiedene DBCs Kein „Nullify“ für Kein „Nullify“ für

Delete von ParentDelete von Parent Builder nicht Builder nicht

ändernändern

Page 40: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

FehlermeldungenFehlermeldungen

1539 Trigger failed 1539 Trigger failed 1=Ins, 2=Upd, 3=Del1=Ins, 2=Upd, 3=Del

1581 Field no NULL1581 Field no NULL 1582 Field Rule1582 Field Rule 1583 Record Rule1583 Record Rule 1585 Change by A.1585 Change by A. 1700 Used by A.1700 Used by A. 1884 Unique index1884 Unique index

AERROR( )AERROR( ) Error()Error() Message()Message() Sys(2018)Sys(2018) Select()Select() Trigger-ArtTrigger-Art .NULL..NULL. .NULL..NULL.

Weitere Elemente für Weitere Elemente für ODBC-FehlermeldungenODBC-Fehlermeldungen

Page 41: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Vielen Dank!Vielen Dank!

Das waren die Themen:Das waren die Themen:

DatenbankcontainerDatenbankcontainer Arbeiten mit DBCArbeiten mit DBC Grundbefehle DBCGrundbefehle DBC Tabellen und FelderTabellen und Felder BufferingBuffering TransaktionenTransaktionen Referentielle Referentielle

IntegritätIntegrität TriggerTrigger

Page 42: Wizards & Builders GmbH Datenbankcontainer Datenbankcontainer in Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Wenn Fragen bestehen:Wenn Fragen bestehen:

Wizards & BuildersWizards & BuildersMethodische Software-Methodische Software-

Entwicklung GmbHEntwicklung GmbH

Frankfurter Str. 21bFrankfurter Str. 21b

61476 Kronberg61476 Kronberg

Tel.: 06173-950906Tel.: 06173-950906

Fax: 06173-950907Fax: 06173-950907

CIS: 101605,175CIS: 101605,175