Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro

Ähnliche Präsentationen


Präsentation zum Thema: "Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro"—  Präsentation transkript:

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

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

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

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

5 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)

6 Ö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

7 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

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

9 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

10 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

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

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

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

14 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

15 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( )

16 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()

17 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

18 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 Index-datei fehlt! 114 - Index stimmt nicht mit Tabelle

19 Weitere Fehler mit Indizes
Index nicht eindeutig NULL. nicht zulässig Schlüssel zu lang Index nicht gefunden UDF in Index auf Tabelle falsche Indexdateiversion Indexausdruck zu lang Indexname zu lang (10 B.)

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

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

22 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!

23 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

24 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

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

26 Rushmore-Optimierung und Hardware unter Microsoft Visual FoxPro

27 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) <==

28 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

29 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

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

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

32 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( )

33 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!)

34 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

35 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

36 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

37 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

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

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

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

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

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

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


Herunterladen ppt "Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro"

Ähnliche Präsentationen


Google-Anzeigen