Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro

Slides:



Advertisements
Ähnliche Präsentationen
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
Advertisements

System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
SQL::Geschichte/Normen (Übersicht)
SQL als Abfragesprache
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],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
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.
Datenintegrität Referentielle Integrität create table
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
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)
2.2 Definition eines Datenbankschemas (SQL-DDL)
Wizards & Builders GmbH Hypertext Markup Language Beschreibung von HTML als Vorbereitung für Webserver mit Microsoft Visual FoxPro.
Arbeiten mit DBC in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast DBC.
Datenbankcontainer in Microsoft Visual FoxPro
Konfiguration / Set-Einstellungen
Arbeiten mit Tabellen in Visual FoxPro 9.0
Datenmodellierung mit XCASE
Wizards & Builders GmbH Die Benutzeroberfläche Interaktives Arbeiten mit den Werkzeugen/Assistenten von Microsoft Visual FoxPro.
Wizards & Builders GmbH Grundbefehle von FoxPro Grundlagen der Programmierung mit Microsoft FoxPro/Windows und 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 Distribution von Applikationen Distribution und Installation unter Microsoft Visual FoxPro.
MSDN Webcast Visual Studio 2005 mit Visual FoxPro Jochen Kirstätter Mai 2005 –
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
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
Rushmore - Einführung oder wie Sie Fehler vermeiden.
Arbeiten mit Daten in 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.
Netzwerkprogrammierung unter Visual FoxPro. © 1999 TMN-Systemberatung GmbH Probleme im Netzbetrieb n Mehrere Benutzer arbeiten auf den gleichen Datensatz.
VFX 10.0 Visual Extend Datenzugriff
Visual FoxPro 6.0 Visual FoxPro einrichten Datenbanken und Tabellen.
Uwe Habermann VFX 11.0 VFX - DBF-CA Wizard Venelina Jordanova
Datenbankentwicklung IV-LK
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Visual Extend CTableForm Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 08 D.
18 IndizierungInhalt 8Indizierung 8.1Grundlagen 8.2Besonderheiten des Primärschlüssels 8.3Einfachen Index erstellen 8.4Zusammengesetzten Index erstellen.
SQL Überblick Abfragen aus einer Tabelle
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Datenbanksysteme für hörer anderer Fachrichtungen
Relationales Datenmodell und DDL
Ihr Trainer: Gerold Hämmerle
Vorlesung #5 SQL (Teil 2).
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Termin Festlegung Einführung MySQL Runterladen MySQL, Pentaho Design Studio Betrachtung Pentaho
Vordefinierte Datentypen (1)
Datenbank für Skriptenverkauf
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
VFP-Praxis Reparatur von VFP Datenbanken
D-SQL SQLization – endlich Client/Server!
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Indexierung Oracle: indexes Indexierung.
 Präsentation transkript:

Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro Arbeiten mit Tabellen Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro

Diese Schulung dient zur Angleichung des Basiswissens der Schulungsteilnehmer über die Grundlagen der Programmiersprache Xbase und der DBF- basierenden Datenbanksysteme.

Themenübersicht Tabellen Datensätze Indizes Relationen Codepages Collate-Sequenzen Rushmore-Optimierung Netzwerke Verzeichnisse Low-Level-Dateien

Tabellen und Datensätze Arbeiten mit Tabellen und Datensätzen unter Microsoft Visual FoxPro

Tabellenformat Tabellen (*.DBF) Memodateien (*.FPT) Header mit Strukturinformation Feste Feldlänge (außer Memo/General) und Feste Feldanzahl = Feste Satzlänge Referenz auf Memo- und Index-Datei Memodateien (*.FPT) Mehrfachindexdateien (*.CDX)

Öffnen von Tabellen USE DatabaseName.Table | SQL-View IN nWorkArea | cTableAlias [ONLINE], [ADMIN] (nur für Offline-Views) AGAIN NOREQUERY (nur Remote) / NODATA (nur Views) INDEX / ORDER TAG OF ASCENDING | DESCENDING (für Order) ALIAS EXCLUSIVE, SHARED NOUPDATE

Arbeiten mit Tabellen SKIP, SKIP -1 BOF(), EOF() SELECT() CREATE USE/USE IN/Used() ISREADONLY() APPEND BLANK EDIT / BROWSE DELETE / RECALL GO TOP/ BOTTOM GOTO, RECNO( ) SKIP, SKIP -1 BOF(), EOF() SELECT() DBF( ), ALIAS() EXCLUSIVE: PACK ZAP

Arbeiten mit Datensätzen REPLACE (FOR) SET FILTER TO FILTER( ) LOCATE FOR FOUND( ) APPEND FROM Array COPY TO IMPORT EXPORT SCATTER GATHER

Arbeiten mit Feldern Character / Zeichen Prefix: c (c) Character Binary Numeric / Zahl Prefix: n (n) Date / Datum Prefix: d (d) Logical / Logisch Prefix: l (l) Memofelder (Char) Prefix: m (c) Memo Binary General

Neue Feldarten Integer / Integer Prefix: i (n) Double / Doppelte G. Prefix: b (n) Float / Fließkomma Prefix: f (n) Currency / Währung Prefix: y (y) DateTime / DatumZeit Prefix: t (t) Character Binary / Memo Binary (s.o.) Feldlänge Memo / General von 4 Byte

Leere Felder / Nullwerte EMPTY( ) ISBLANK( ) ISNULL( ) SET NULL NVL( ) Beispiel: Statistik, Logik

Weitere Funktionen Tabelle: Header( ) Reccount( ) Recsize( ) Felder: Fcount( ) Field( ) Namen u.ä.: DBF( ) CDX( ) Lupate( ) (2 B.!) Klauseln: Key( ) For( )

Indizes und Relationen Arbeiten mit Indizes und mit Relationen unter Microsoft Visual FoxPro

Grundlagen Grundlagen: Separate Datei B-Baum Schlüssel 100 B. IDX/240 B. CDX Ausdruck 220 B. Kein Alltrim()! Ausdrücke Benötigt für: Rushmore-Optimierung Suchbefehle Relationen dito persistent Referentielle Integrität

Arbeiten mit Indizes SET ORDER TO ORDER( ) SEEK( ) SET KEY TO INDEX ON <Feldname> TO IDX | TAG [OF] [FOR <Bedingung>] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] (kein PRIMARY) SET ORDER TO ORDER( ) SEEK( ) SET KEY TO KEYMATCH( ) LOOKUP( )

Indexarten PRIMARY - Primärschlüssel CANDIDATE - Eindeutiger Schlüssel nur in DBC, nicht in freien Tabellen CANDIDATE - Eindeutiger Schlüssel REGULAR - Normaler Schlüssel UNIQUE - „Einmaliger“ Schlüssel niemals NICHT VERWENDEN! Sinnvoll gelegentlich in Views Funktionen: Primary(), Candidate()

Primärschlüssel Real-World-Schlüssel Surrogate / Abstract -Schlüssel meist zusammengesetzt Änderungen immer möglich! Eindeutigkeit letztendlich nicht garantiert RI: Cascading Update notwendig! Surrogate / Abstract -Schlüssel fortlaufend selbst erzeugt (ggf. mit zentraler Tabelle) Datenmodell komplett erstellbar ohne Attribute RI: kein Cascading Update notwendig

Probleme mit Indizes Defekte Dateien: durch Strom-ausfall, Netz-werkproblem oder Abschalten REINDEX bzw. Neuerstellen ! Fehler: 5 - Satz außerhalb des Bereichs 20 - Satz nicht in Indexdatei 1707 - Index-datei fehlt! 114 - Index stimmt nicht mit Tabelle

Weitere Fehler mit Indizes 1884 - Index nicht eindeutig 1886 - .NULL. nicht zulässig 1124 - Schlüssel zu lang 1683 - Index nicht gefunden 1690 - UDF in Index auf Tabelle 1141 - falsche Indexdateiversion 23 - Indexausdruck zu lang 10 - Indexname zu lang (10 B.)

Arbeiten mit Relationen SET RELATION SET SKIP Relation( ) Target( ) Hinweise: Umgebungsfenster SET RELATION TO RECNO( ) Alternatives Anwendungs-beispiel Alternative: SQL-Joins SET KEY RANGE

Collate-Sequenzen/Codepages Arbeiten mit Collate-Sequenzen/Codepages mit Microsoft Visual FoxPro

Arbeiten mit Collate-Sequenzen SET COLLATE TO „<collate>“ Default „GENERAL“ (2 Byte, A=a!) Original „MACHINE“ (schnell!) Alternativ: „GERMAN“, „UNIQWT“ Sonstige: „DUTCH“, „ICELAND“, „NORDAN“, „SPANISH“, „SWEFIN“ Ggf. doppelte Index-Definition mit verschiedenen Collate-Sequenzen!

Probleme mit Collate Datei „FoxPro.Int“ nicht gefunden zukünftig evtl. in VFP eingebunden Collate „General“ und „German“ fehlerhaft Problem mit Integer, Double, Currency, Datetime Keine Rushmore-Optimierung bei gemischten Collate-Sequenzen IDXCOLLATE() für Kontrolle

Arbeiten mit Codepages 437, 850, 1252, 10000 CPCURRENT( ) CPDBF( ) CPCONVERT( ) veraltet: ANSITOOEM() OEMTOANSI() GETCP( ) CODEPAGE=auto SET NOCPTRANS Character Binary Memo Binary SET CPDIALOG SET CPCOMPILE

Fehler mit Collate/Codepage 1914 - Codepage ungültig (oder nicht in FOXPRO.INT-Datei) 1915 - Collate-Sequenz „<Name>“ nicht gefunden (FOXPRO.INT fehlt / fehlerhaft) 1916 - Codepage=AUTO in CONFIG.FPW einstellen

Rushmore-Optimierung und Hardware unter Microsoft Visual FoxPro

Rushmore-Optimierung Indexdefinition vorhanden Keine FOR/NOT-Klausel im Index Identische Indexdefinition zusammengesetzte Felder, Alltrim() Index auf Deleted() (bei SET DELE ON) Passende Collatesequenz (IDXCOLLATE) Keine Sortierung (SET ORDER TO) Keine Abfrage auf Empty( ) / IsBlank( ) Kein exakter Vergleich (SET EXACT/ANSI OFF/==) ==> Kontrolle mit SYS(3054,1/11) <==

Optimierbare Befehle (FOR!) AVERAGE DELETE / BLANK BROWSE CALCULATE CHANGE / EDIT COPY TO (ARRAY) COUNT LIST / DISPLAY EXPORT INDEX LOCATE RECALL REPLACE (ARRAY) LABEL / REPORT SCAN SORT SUM TOTAL

Hardware-Optimierung Festplatte: HD-Controller! Verteilung von DBF und CDX auf versch. Festplatten (nicht Partitionen !) Netzwerk: Mehrere Netzwerk-karten im Server User auf Stränge verteilen (z.B. 10 User/Strang) Userprofil

Multiuser-Programmierung Arbeiten im Netzwerk und Multiuser-Programme mit Microsoft Visual FoxPro

Sperrmöglichkeiten Öffnen im SHARED-Modus RECORD LOCK - Satzsperre Einzelsatz, mehrere Sätze FILE LOCK - Dateisperre HEADER LOCK - Headersperre EXCLUSIVE - exklusives Öffnen

Sperrbefehle im Netzwerk FILE LOCK: FLOCK( ) IsFLocked( ) HEADER LOCK: LOCK RECORD 0 UNLOCK REC 0 RECORD LOCK: RLOCK( ) IsRLocked( ) UNLOCK RECORD EXCLUSIVE: USE EXCLUSIVE IsExclusive( )

Automatisches Sperren FILE LOCK: ALTER TABLE INSERT (xBase) DELETE / REPLACE mit ALL/REST/NEXT x UPDATE (beide) HEADER LOCK: APPEND normal sowie mit BLANK / FOR INSERT (SQL) RECORD LOCK: APPEND MEMO DELETE / REPLACE / RECALL / BLANK so oder mit NEXT 1 DELETE / BLANK REC. GATHER CHANGE / EDIT MODI MEMO, READ BROWSE (Childs!)

Sperren auch beim Lesen Beim Verarbeiten von neben-stehenden Befehlen wird nicht gesperrt! SET LOCK ON oder FLOCK() sinnvoll! Besser: vorher SQL-Select in Cursor AVERAGE CALCULATE COPY TO (ARRAY) LIST / DISPLAY LABEL / REPORT SORT COUNT SUM TOTAL

Sonstige Netzwerkbefehle SET REFRESH - Neuanzeige sehr hohe Netzwerkbelastung bei BROWSE ! SET REPROCESS - Wiederholung SET MULTILOCKS - Mehrfachsperren SYS(3051) - Intervall Sperrversuche SYS(3052) - SET REPRO ausschalten SYS(0) - Rechnernummer im Netz SYS(2011) - alte Funktion wg. Status

Probleme mit Pufferung Problem: Änderung von Daten-sätzen durch andere Netz-User erst sichtbar durch/nach: SET REFRESH (problematisch) SKIP, GOTO, SEEK Satzsperre RLOCK Lösung: Beim Lesen 1x Sperren

Server im Vergleich Novell-Server: Schnelles Dateisystem Transaction Tracking (TTS) Directory Serv. Nur NLM/JVM Client-Fehler! NT-Server: Sicherheit nur mit NTFS (FAT) Server-Anwen-dungen! Remote OLE-Automation Backoffice

Verzeichnisse / LLFF Arbeiten mit Verzeichnissen und Low-Level-Dateien in Microsoft Visual FoxPro

Navigieren in Verzeichnissen HOME( ) CURDIR( ) DISKSPACE( ) DIRECTORY( ) GETDIR( ) GETFILE( ) LOCFILE( ) PUTFILE( ) CD (CHDIR) MD (MKDIR) RD (RMDIR) SET DEFAULT SET PATH

LowLevel-Dateifunktionen FCREATE( ) FOPEN( ) FCLOSE( ) FSEEK( ) FEOF( ) FCHSIZE( ) FFLUSH( ) FGETS( ) FPUTS( ) FREAD( ) FWRITE( ) FILE( ) (FULLP) FDATE/FTIME() (INI in Cursor)

Was ist zu bedenken? Korrekte Indexdefinition Probleme mit Codepages Probleme mit Collate-Sequenz Rushmore-Optimierung

Vielen Dank! Das waren die Themen: Tabellen Datensätze Indizes Relationen Codepages Collate-Sequenzen Rushmore Netzwerke Verzeichnisse Low-Level-Dateien

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