Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Wizards & Builders GmbH Arbeiten mit Tabellen Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro.

Ähnliche Präsentationen


Präsentation zum Thema: "Wizards & Builders GmbH Arbeiten mit Tabellen Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro."—  Präsentation transkript:

1 Wizards & Builders GmbH Arbeiten mit Tabellen Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro

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

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

4 Wizards & Builders GmbH Tabellen und Datensätze Arbeiten mit Tabellen und Datensätzen unter Microsoft Visual FoxPro

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

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

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

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

9 Wizards & Builders GmbH Arbeiten mit Feldern Character / ZeichenPrefix: c(c) Character / ZeichenPrefix: c(c) Character Binary Character Binary Numeric / ZahlPrefix: n(n) Numeric / ZahlPrefix: n(n) Date / DatumPrefix: d(d) Date / DatumPrefix: d(d) Logical / LogischPrefix: l (l) Logical / LogischPrefix: l (l) Memofelder (Char)Prefix: m(c) Memofelder (Char)Prefix: m(c) Memo Binary Memo Binary General General

10 Wizards & Builders GmbH Neue Feldarten Integer / IntegerPrefix: i(n) Integer / IntegerPrefix: i(n) Double / Doppelte G.Prefix: b(n) Double / Doppelte G.Prefix: b(n) Float / FließkommaPrefix: f(n) Float / FließkommaPrefix: f(n) Currency / WährungPrefix: y(y) Currency / WährungPrefix: y(y) DateTime / DatumZeitPrefix: t(t) DateTime / DatumZeitPrefix: t(t) Character Binary / Memo Binary (s.o.) Character Binary / Memo Binary (s.o.) Feldlänge Memo / General von 4 Byte Feldlänge Memo / General von 4 Byte

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

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

13 Wizards & Builders GmbH Indizes und Relationen Arbeiten mit Indizes und mit Relationen unter Microsoft Visual FoxPro

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

15 Wizards & Builders GmbH Arbeiten mit Indizes INDEX ON TO IDX | TAG [OF] INDEX ON TO IDX | TAG [OF] [FOR ] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] (kein PRIMARY) (kein PRIMARY) SET ORDER TO SET ORDER TO ORDER( ) ORDER( ) SEEK( ) SEEK( ) SET KEY TO SET KEY TO KEYMATCH( ) KEYMATCH( ) LOOKUP( ) LOOKUP( )

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

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

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

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

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

21 Wizards & Builders GmbH Collate-Sequenzen/Codepages Arbeiten mit Collate- Sequenzen/Codepages mit Microsoft Visual FoxPro

22 Wizards & Builders GmbH Arbeiten mit Collate-Sequenzen SET COLLATE TO SET COLLATE TO Default GENERAL (2 Byte, A=a!) Default GENERAL (2 Byte, A=a!) Original MACHINE (schnell!) Original MACHINE (schnell!) Alternativ: GERMAN, UNIQWT Alternativ: GERMAN, UNIQWT Sonstige: DUTCH, ICELAND, NORDAN, SPANISH, SWEFIN Sonstige: DUTCH, ICELAND, NORDAN, SPANISH, SWEFIN Ggf. doppelte Index-Definition mit verschiedenen Collate-Sequenzen! Ggf. doppelte Index-Definition mit verschiedenen Collate-Sequenzen!

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

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

25 Wizards & Builders GmbH Fehler mit Collate/Codepage Codepage ungültig (oder nicht in FOXPRO.INT-Datei) Codepage ungültig (oder nicht in FOXPRO.INT-Datei) Collate-Sequenz nicht gefunden (FOXPRO.INT fehlt / fehlerhaft) Collate-Sequenz nicht gefunden (FOXPRO.INT fehlt / fehlerhaft) Codepage=AUTO in CONFIG.FPW einstellen Codepage=AUTO in CONFIG.FPW einstellen

26 Wizards & Builders GmbH Optimierung Rushmore-Optimierung und Hardware unter Microsoft Visual FoxPro

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

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

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

30 Wizards & Builders GmbH Multiuser-Programmierung Arbeiten im Netzwerk und Multiuser-Programme mit Microsoft Visual FoxPro

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

32 Wizards & Builders GmbH Sperrbefehle im Netzwerk FILE LOCK: FLOCK( ) FLOCK( ) IsFLocked( ) IsFLocked( ) HEADER LOCK: LOCK RECORD 0 LOCK RECORD 0 UNLOCK REC 0 UNLOCK REC 0 RECORD LOCK: RLOCK( ) RLOCK( ) IsRLocked( ) IsRLocked( ) UNLOCK RECORD UNLOCK RECORDEXCLUSIVE: USE EXCLUSIVE USE EXCLUSIVE IsExclusive( ) IsExclusive( )

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

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

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

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

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

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

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

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

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

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

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


Herunterladen ppt "Wizards & Builders GmbH Arbeiten mit Tabellen Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro."

Ähnliche Präsentationen


Google-Anzeigen