1 / 43

Arbeiten mit Tabellen

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

benard
Télécharger la présentation

Arbeiten mit Tabellen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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) • 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) • Header mit Strukturinformation

  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. 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 Tabellen

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

  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. Tabelle: Header( ) Reccount( ) Recsize( ) Felder: Fcount( ) Field( ) Namen u.ä.: DBF( ) CDX( ) Lupate( ) (2 B.!) Klauseln: Key( ) For( ) Weitere Funktionen

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

  14. 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 Grundlagen

  15. 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( ) Arbeiten mit Indizes

  16. Indexarten • PRIMARY - Primärschlü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 • 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. 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 Probleme mit Indizes

  19. 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.)

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

  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 • 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

  26. Optimierung 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 mitSYS(3054,1/11) <==

  28. 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 Optimierbare Befehle (FOR!)

  29. 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 Hardware-Optimierung

  30. Multiuser-Programmierung Arbeiten im Netzwerk und Multiuser-Programme mitMicrosoft 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. FILE LOCK: FLOCK( ) IsFLocked( ) HEADER LOCK: LOCK RECORD 0 UNLOCK REC 0 RECORD LOCK: RLOCK( ) IsRLocked( ) UNLOCK RECORD EXCLUSIVE: USE EXCLUSIVE IsExclusive( ) Sperrbefehle im Netzwerk

  33. 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!) Automatisches Sperren

  34. 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 Sperren auch beim Lesen

  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. 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 Server im Vergleich

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

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

  40. FCREATE( ) FOPEN( ) FCLOSE( ) FSEEK( ) FEOF( ) FCHSIZE( ) FFLUSH( ) LowLevel-Dateifunktionen • 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 Methodische Software-Entwicklung GmbH Frankfurter Str. 21b 61476 Kronberg Tel.: 06173-950906 Fax: 06173-950907 CIS: 101605,175

More Related