Datenbankcontainer in Microsoft Visual FoxPro

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Datenintegrität Referentielle Integrität create table
Datenbanken 10: Einfügen, Ändern, Löschen
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9)
Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro
Wizards & Builders GmbH Der Maskendesigner Design von Masken für Applikationen unter Microsoft Visual FoxPro.
Client / Server Architektur
Wizards & Builders GmbH ActiveX-Controls Verwendung und Einsatz von ActiveX-Controls unter Microsoft Visual FoxPro.
Arbeiten mit DBC in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast DBC.
Wizards & Builders GmbH Fehlerbehandlung und Debugging Aufspüren und Behandeln von Programmfehlern unter Microsoft Visual FoxPro.
Konfiguration / Set-Einstellungen
Arbeiten mit Tabellen in Visual FoxPro 9.0
Wizards & Builders GmbH Schichtenarchitektur Multi-Tier-Applikationen mit Microsoft Visual FoxPro.
Datenmodellierung mit XCASE
Wizards & Builders GmbH Microsoft Titel Microsoft-Titel für Entwickler und Softwarehäuser.
Wizards & Builders GmbH Klassenbibliotheken Arbeiten mit Klassenbibliotheken in Microsoft Visual FoxPro.
Wizards & Builders GmbH Die Benutzeroberfläche Interaktives Arbeiten mit den Werkzeugen/Assistenten von Microsoft Visual FoxPro.
Wizards & Builders GmbH Projektmanager und SourceSafe Arbeiten mit dem Projektmanager von Microsoft Visual FoxPro.
Wizards & Builders GmbH Programmierstil Hinweise zum Programmierstil unter Microsoft Visual FoxPro.
Arbeiten mit SQL in Visual FoxPro 9.0
Wizards & Builders GmbH Arbeiten mit CSV-Listen Arbeiten mit CSV-Listen unter Microsoft Visual FoxPro.
Wizards & Builders GmbH OOP in der Praxis Die wichtigsten Befehle für OO-Programmierung mit Microsoft Visual FoxPro.
Wizards & Builders GmbH Übersicht Schulung Übersicht über Schulung für Entwickler unter Microsoft Visual FoxPro.
Wizards & Builders GmbH Tools, AddOns, Frameworks Nützliche Zusatzprodukte rund um Microsoft Visual FoxPro.
Wizards & Builders GmbH Distribution von Applikationen Distribution und Installation unter Microsoft Visual FoxPro.
Wizards & Builders GmbH Modularisierung von SW Modularisierung von Anwendungen mit Microsoft Visual FoxPro.
Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group.
VFP Beispiele sowie Tools, Frameworks und Klassen
Neue DBF und DBC Befehle in Visual FoxPro
Lokal Views (Ansichten) in Visual FoxPro
© 2005 Uwe Habermann Visual Extend 9.5 Technical Preview Uwe Habermann Visual Extend Product Manager
VFX Schnelle Anwendungs-entwicklung mit Visual FoxPro 9.0 und Visual Extend 9.0 deutschsprachige FoxPro User Group Uwe Habermann Microsoft Visual FoxPro.
Arbeiten mit Daten in Visual FoxPro 9.0
Client/Server mit Visual FoxPro 9.0
Arbeiten mit SQL in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow SQL.
Eingangsfrage Ordnen Sie die nachfolgenden MCP-Tests in einer sinnvollen Reihenfolge zur Erlangung des MCSD (Microsoft Certified Solution Developer): A)
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Netzwerkprogrammierung unter Visual FoxPro. © 1999 TMN-Systemberatung GmbH Probleme im Netzbetrieb n Mehrere Benutzer arbeiten auf den gleichen Datensatz.
Error Handling unter Visual FoxPro. © 1999 TMN-Systemberatung GmbH ON ERROR n ON ERROR DO ERRHAND WITH error(), sys(16), message(), lineno(1) – Globales.
VFX 10.0 Visual Extend Datenzugriff
Visual FoxPro 6.0 Visual FoxPro einrichten Datenbanken und Tabellen.
Visual Extend Weitere Features deutschsprachige FoxPro User Group Uwe Habermann VFX 25 D.
© 2004 Uwe Habermann Visual Extend 9.0 Technical Preview Diplom-Informatiker Uwe Habermann Visual Extend Product Manager
Uwe Habermann VFX 11.0 Einsatz von Cursoradaptern in bestehenden Anwendungen Venelina Jordanova
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
© 2003 Uwe Habermann Visual Extend 7.1 Die Entwicklungsumgebung für VFP 8.0 Uwe Habermann Diplom-Informatiker
Relationale Datenbanken III
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Visual Extend CTableForm Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 08 D.
Visual Extend CursorAdapter deutschsprachige FoxPro User Group Uwe Habermann VFX 18 D.
Visual Extend CPickAlterTextbox Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 16 D.
© 2005 Uwe Habermann, Venelina Jordanova Visual Extend 9.0 Die Entwicklungsumgebung für VFP 9.0 Uwe Habermann Visual Extend Product Manager
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
Ihr Trainer: Gerold Hämmerle
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
1 Referenzielle Konsistenz (1) Vorgehensweise: Klausel references mit nachfolgender Spezikation eines Attributs einer anderen Tabelle identifiziert ein.
PHPmyadmin Maya Kindler 6c.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
SQL Basics Schulung –
VFP-Praxis Reparatur von VFP Datenbanken
 Präsentation transkript:

Datenbankcontainer in Microsoft Visual FoxPro

Diese Schulung dient zur Einführung der Schulungsteilnehmer in die Arbeit mit Datenbankcontainer (im Vergleich zu Einzeltabellen) in Visual FoxPro

Themenübersicht Datenbankcontainer (Sinn/Struktur) Arbeiten mit dem Datenbankcontainer Grundbefehle des Datenbankcontainers Tabellen und Felder im DBC Buffering und Buffermode Transaktionen Referentielle Integrität Trigger (Insert, Update, Delete, Fehler)

Datenbankcontainer Datenbankcontainer fassen „freie Tabellen“ zu einer Datenbank zusammen und verwalten die Metadaten

Datenbankcontainer Ein DBC ist kein Data-Dictionary! Tabellenstrukturen im DBF-Header Indexstrukturen im CDX-Header Verwaltet Zusatzinformationen zu Feldern und Tabellen (nicht „freie“ Tabellen) Verwaltet persistente Relationen Verwaltet referentielle Integrität

Logische Bestandteile rules / triggers tables relations connections local views stored procedures remote views indexes

Physische Bestandteile FPT1 DBF1 CDX1 DBC DCT DCX CDXn DBFn DBF2 FPTn FPT2 CDX2

Arbeiten mit dem DBC Anlegen einer Tabelle Feldeigenschaften Anlegen einer Relation (Drag & Drop) Anlegen einer Ansicht (View) Anlegen einer Verbindung (Connection) Anlegen einer Remote Ansicht (View)

Tabellen im DBC CREATE TABLE ALTER TABLE ADD TABLE REMOVE TABLE FREE TABLE (!) CLOSE TABLE INDBC( ) VALID RULE VALID TEXT CAPTION COMMENT UPD TRIGGER () INS TRIGGER () DEL TRIGGER ()

Felder im DBC FORMAT MASK CAPTION VALID RULE VALID TEXT DEFAULT CLASS CLASSLIBS COMMENT Optionen beachten! (Klassenzuordnung)

Validierungen Feld-Ebene: VALID-Funktion Fehlermeldung Wahlweise Funktion oder Konstante Default-Wert dazu! Satz-Ebene: für Validierung über mehrere Felder ansonsten siehe Feld-Validierung Trigger kommen als separates Thema

Gespeicherte Prozeduren (1) Gehören imanent zu den Tabellen und wird als Prozedur-Datei gesetzt! Werden auch über ODBC ausgeführt! Verwendet für: Feld-Validierung, Feld-Fehlermeldung Satz-Validierung, Satz-Fehlermeldung Feld-Default-Wert Trigger-Aufrufe

Gespeicherte Prozeduren (2) Kompilate in DBC-Datensatz sind versionsabhängig (VFP 3.0, 5.0 / 6.0) - d.h. Neukompilieren (!) ggf. ausgelagerte Prozedurdatei verwenden Tabellen/Felder finden „richtige“ Prozedurdatei - eigene Anwendung verwendet aber nur aktiven DBC! Set database to Namenskonventionen für DBC-Funktionen!

Views im DBC Felder (Ausdrücke) Verknüpfung Filter Sortierung Gruppierung Aktualisierung Verschiedenes Schlüssel setzen Felder setzen SQL-Update setzen Where-Klausel Schlüssel änderbar! Feldeigenschaften!

Struktur des DBC OBJECTID PARENTID OBJECTTYPE => OBJECTNAME PROPTERY (M) CODE (M) RIINFO USER (M) Objekt-Typen: DATABASE TABLE FIELD INDEX VIEW CONNECTION

Grundbefehle DBC (1) CREATE DATA OPEN DATA MODIFY DATA CLOSE DATA DELETE DATA PACK DATA sortiert Schlüssel neu! VALIDATE DATA Zeigt manche Fehler nur! SET DATA TO Achtung: Projektmanager kann DBC offenhalten! Info-Funktionen: DBC() DBUSED()

Grundbefehle DBC (2) Sonstige Funktionen: Anzeigefunktionen: LIST DATABASE LIST TABLES LIST VIEWS LIST CONNECTIONS LIST PROCEDURE Sonstige Funktionen: ADATABASES( ) ADBOBJECTS( ) Eigenschaften ändern: DBGETPROP( ) DBSETPROP( )

DbGetProp( ) / DbSetProp( ) Datenbanken Tabellen Felder in Tabellen Ansichten Felder in Ansichten Verbindungen

Strukturänderungen Eigenlösungen: Neuen DBC mit geänderten Tabellen versenden SQL Alter Table-Befehl versenden Keine Primary Keys in VFP 3.0 / VFP 5.0 ! Fremdlösungen: XCASE-Zusatztool SDT-Zusatztool (Stonefield Database Toolkit)

Hinweise zum DBC Separates Datadictionary notwendig für Reindizierung od. Neuerzeugung wahlweise Eigenbau, XCase oder Stonefield wahlweise GENDBCX als Minimal-Lösung Tabellen und DBC sind eine Einheit Immer zusammen sichern / ändern FREE TABLE mit Vorsicht!

Buffering dient zur Zwischenspeicherung von Änderungen

Prinzip des Buffering OLDVAL- Puffer DBF- Eingabe- Datei Maske Daten- Methode zum automatischen Puffern von Daten zwischen einer Eingabe-Maske und der DBF-Datei auf der Festplatte OLDVAL- Puffer Eingabe- Maske DBF- Datei Daten- Puffer

Tablebuffering TABLEREVERT() TABLEUPDATE() CURSOR-GETPROP() CURSOR-SETPROP() CURVAL() OLDVAL() GETNEXT-MODIFIED() GETFLDSTATE() SETFLDSTATE()

Tableupdate / Tablerevert Parameter für Tableupdate( ) --- Einzelsatz .T. bis 1. Fehler 2 alle die gehen .T. Forced Update Parameter für Tablerevert( ) Einzelsatz Alle Änderungen Schließen = Revert!

Buffermode Buffermodes: 1-None 2-Pessimistic Row 3-Pessimistic Table 4-Optimistic Row 5-Optimistic Table Row: Skip = Update (!) Optimistic: Record changed! Curval/Oldval() GetFldState() Table-Buffering: Getnextmodified()

Funktionen im Einsatz Beispiele: ? GetFldState(-1) != Repl(„1“,Fcount()+1) ? Left( GetFldState(-1),1) != „1“ Goto ( GetNextModified( Recno() ) ) ? Field( At( „2“, GetFldState(-1) ) ) ? SetFldState( „Feld“, 1 ) && Views! Achtung: Negative Record-Nummern!

Reihenfolge Tabellenfeld-Valid (alle Felder) Masken-Valid (aktuelles Element) Datensatz-Valid(ierung) Primary/Candidate-Schlüssel Trigger kaskadierend über alle Childs Achtung: _TRIGGERLEVEL kann hoch werden

CursorGetProp( ) / CSetProp( ) Allgemein: Buffering (ein- /ausschalten, abfragen, Wert 1-5) Caption (Auslesen Text für Feldlabel zur Laufzeit) nur für Views (Auch im View-Designer): CompareMemo Updatable Updatable Field List Where Type

Vorsicht Falle! Allgemeine Probleme: GETNEXTMODIFIED / GETFIELDSTATE() => erst Feld verlassen! SetFldState( ) bei Views mit Requery() Table changed im View-Designer sofern alle Felder gewählt wurden (*) Sonderfall: Buffered Views auf Buffered Tables! Row: Fehler erst beim nächsten Satz! Tablerevert: Revert im View versagt Primary Key doppelt: Letzter gilt!

Transaktionen Transaktionen dienen dem vollständigen Abspeichern einer Gruppe von Datensätzen

Transaktionen BEGIN TRANS END TRANS ROLLBACK TXNLEVEL() *-- Datenzugriff END TRANS ROLLBACK Absturz = Rollback Rollback bei Öffnen! TXNLEVEL() bis 5 Ebenen tief! Äußerste Ebene zählt! Experimente mit Transaktionen: 1 Tabelle 2 Tabellen aus DBC Verschiedene DBCs Freie Tabellen Geschachtelt Task-Manager!

Probleme bei Transaktionen Buffering eingeschaltet = Transaktion läuft nur auf Buffer und nicht auf Platte! Buffering ausgeschaltet = Transaktion läßt Einschalten Buffering nicht zu! Dadurch ggf. neue Sätze nicht anlegbar (Valid) Lösung möglicherweise Buffering mit Tableupdate und dann END TRANS Freie Tabellen ohne Meldung! Deadlocks möglich - Zugriffsreihenfolge!

Zugriffsreihenfolge (Deadlocks!) Tabellen nach Parent->Child Immer erst den Parent sperren notfalls per SQL-Select erst die Parents holen Datensätze nach Primärschlüssel notfalls per SQL-Select umsortieren Mehrere Parents ggf. alphabetisch sofern Parents nicht in Parent-Child-Beziehung

Referentielle Integrität RI dient zur Wahrung der inhaltlichen Konsistenz Beziehungen zwischen Tabellen

Referentielle Integrität (RI) Bedeutung der Referentiellen Integrität einer Datenbank Arbeiten mit dem Referential Integrity Builder Programmatisch: CREATE TRIGGER DELETE TRIGGER _TRIGGERLEVEL Arten von Triggern: DELETE UPDATE INSERT

DELETE-Trigger Auslöser: DELETE-Befehl Nicht bei ZAP (!) Gefährlich!!! Nicht bei PACK (da Sätze gelöscht) Verhalten: CASCASE Cascading Delete RESTRICT sofern Parent vorh. IGNORE

INSERT-Trigger Auslöser: APPEND FROM APPEND BLANK IMPORT INSERT-SQL RECALL (!) Verhalten: RESTRICT Child nur zu Parent IGNORE INSERT unzulässig

UPDATE-Trigger Auslöser: GATHER REPLACE REPLACE FROM UPDATE-SQL nicht bei DELETED() (!) Verhalten: CASCADE Schlüssel zu Childs RESTRICT Parentschlüssel gesperrt IGNORE

Probleme mit Triggern Im Gegensatz zu Feld-Valid und Satz-Valid ist ein Triggerfehler ein endgültiger Fehler! Das heißt: VFP macht Rollback über alle Ebenen Probleme: Ändern von Daten! Update-Endlosschleife... Compound Keys Verschiedene DBCs Kein „Nullify“ für Delete von Parent Builder nicht ändern

Fehlermeldungen 1539 Trigger failed 1581 Field no NULL 1582 Field Rule 1=Ins, 2=Upd, 3=Del 1581 Field no NULL 1582 Field Rule 1583 Record Rule 1585 Change by A. 1700 Used by A. 1884 Unique index AERROR( ) Error() Message() Sys(2018) Select() Trigger-Art .NULL. Weitere Elemente für ODBC-Fehlermeldungen

Vielen Dank! Datenbankcontainer Arbeiten mit DBC Grundbefehle DBC Das waren die Themen: Datenbankcontainer Arbeiten mit DBC Grundbefehle DBC Tabellen und Felder Buffering Transaktionen Referentielle Integrität Trigger

Wenn Fragen bestehen: Wizards & Builders Frankfurter Str. 21b Methodische Software-Entwicklung GmbH Frankfurter Str. 21b 61476 Kronberg Tel.: 06173-950906 Fax: 06173-950907 CIS: 101605,175