Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Arbeiten mit Tabellen in Visual FoxPro 9.0

Ähnliche Präsentationen


Präsentation zum Thema: "Arbeiten mit Tabellen in Visual FoxPro 9.0"—  Präsentation transkript:

1 Arbeiten mit Tabellen in Visual FoxPro 9.0
deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast

2 Teil 1: Arbeiten mit Tabellen
Mittwoch, , 16:00 – 17:00 Uhr Eine der Grundlagen der objektorientierten Entwicklungsumgebung Microsoft Visual FoxPro 9.0 ist die integrierte leistungsfähige Datenbankengine für lokale Desktop-Anwendungen. Behandelt werden Tabellenstrukturen, Feldtypen, Indizes, Sortiersequenzen und natürlich die Rushmore-Optimierung von Visual FoxPro sowie weitere Optimierungsmöglichkeiten für bestehende Anwendungen unter besonderer Berücksichtigung des neuen lOptimize-Flags für Grids sowie neuer Feldtypen und weiterer Verbesserungen in der neuen Version der Datenbankengine.

3 Rainer Becker dFPUG VFP-Entwicklerkonferenz VFP-Lokalisierung
Online-Angebote Loseblattsammlung VFP-Entwicklerkonferenz VFP-Lokalisierung Framework Visual Extend MVP, MCP, ISV Wizards & Builders GmbH

4 Wie bekomme ich VFP ? Update von 6.0, 7.0, 8.0 sowie VS 97
Nicht von VFP 5.0 oder früher trotz ggf. anderslautender Online-Angabe Internationale und US/Canada-Version Preisunterschied durch Dollarverfall Technisch identisch Kein Support / Marketingbudget für US-Version in BRD dFPUG bietet exklusiv „Deutsche Version“ Benutzeroberfläche, Berichtsdesigner, Werkzeuge

5 Tabellen Endung .DBF (DataBase File) max. 255 Felder
max. 1 Mio. Datensätze max. 2 GB Dateigrösse ggf.: Index, Endung .CDX (Compound Index) ggf.: Einzelindex, Endung .IDX (nicht empfohlen) ggf.: Memodatei, Endung FPT auch als „freie“ Tabellen bezeichnet

6 Demo 1: Tabellen Strukturänderungen (Places)
Datenbankcontainer einfach (Northwind) Datenbankcontainer komplex (Hausverwaltung) Rushmore-Optimierung im Grid (Test)

7 Datenbankcontainer Verwaltet Zusatzinformationen
zu Tabellen (dadurch nicht mehr „freie“ Tabellen) Felder persistente Relationen gespeicherte Prozeduren referentielle Integrität / Trigger , Ereignisse Verbindungen, lokale und remote Views Ein DBC ist kein Data-Dictionary! Tabellenstrukturen im DBF-Header Indexstrukturen im CDX-Header

8 Hinweise zum DBC Projektmanager kann DBC offenhalten!
Separates Datadictionary notwendig für Reindizierung oder Neuerzeugung wahlweise Eigenbau (Alter Table), XCASE, SDT, VFX wahlweise GENDBCX als Minimal-Lösung Tabellen und DBC sind eine Einheit Immer zusammen sichern / ändern FREE TABLE problematisch bei langen Feldnamen Auch copy to database kopiert Metadaten leider nicht

9 Datenbankengineänderungen
ALTER TABLE Memofelder vor/zurück Umschalten mit SET ENGINEBEHAVIOR oder SYS(3099) Erinnerung: Leerzeichen Leerzeichen in Tabellennamen zulässig Immer „“ bzw. () statt & verwenden Problematisch bei USE IN „tab 1 test“ Fortsetzung Datenbankcontainer im WebCast Teil 2!

10 Lange Feldtypenbezeichnungen
Datentyp Langer Name Kurzer Name Character Char, Character C Date Date D DateTime Datetime T Numeric Num, Numeric N Floating Float F Integer Int, Integer I Double Double B Currency Currency Y Logical Logical L Memo Memo M General General G Picture Picture P Varchar Varchar V Varbinary Varbinary Q Blob Blob W

11 Blob Alternative zu General-Feldern Ohne OLE-Server, kein Overhead
Read-Only HexCode in Memofeldanzeige Kompatibel zu SQL-Server Beispiel Bilderspeicherung pictureval oimg.pictureval = filetostr / blob loadpicture

12 VarChar / VarBinary Format = „F“ verhindert Auffüllen des Value mit Leerstellen bei VarChar oder CHR(0) bei VarBinary .Inputmask =„HHHH…HH“ lässt nur Hexadezimaleingaben zu (0…F), sonst Präfix "0h" SET VarCharMapping ON | OFF Keine Einstellung in Extras->Optionen, Default ON Tabellen/Cursor-Spalten werden als VarChar angelegt, wenn die erzeugende Funktion variable Längen liefert (vorname+nachname, func() )

13 Demo 2: Neue Feldtypen Unveränderte Dateilänge (Varchar)
Darstellung Datentypen (Datatypes) Bildzuordnung (Blob) Leerzeichen in Dateinamen (Makros)

14 Indexarten REGULAR - Normaler Schlüssel
CANDIDATE - Eindeutiger Schlüssel PRIMARY - Primärschlüssel nur in DBC, nicht in freien Tabellen UNIQUE - „Einmaliger“ Schlüssel NICHT VERWENDEN! Sinnvoll gelegentlich in Views wird nicht mehr angeboten, aber weiterhin vorhanden Neu: BINARY –Binärschlüssel

15 Binary Index Wesentlich kleiner (1:30)
dadurch schnelleres INSERT/UPDATE Bitmap kann direkt geladen werden Rushmore-Optimierung SYS(3054,1) FULL: Linke Seite ist der logische Ausdruck SCAN FOR, SET FILTER, etc… NEU: auch für NOT und FOR (NOT) DELETED() Zulässig: Nur logische Ausdrücke Unzulässig: SET ORDER, SET FILTER, .NULL.

16 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

17 Relationen basieren auf Indizes
SET RELATION SET SKIP Relation( ) Target( ) Hinweise: Umgebungsfenster SET RELATION TO RECNO( ) Alternative: SQL-Joins SET KEY RANGE Hinweis: INDEXSEEK( )

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

19 Die große Vergleichsfalle
Optimierung und Vergleiche basieren auf aktuell eingestellter Sortiersequenz! SET COLLATE gilt für aktuelle Datasession SCAN WHILE / REST bei anderer Sortiersequenz verlässt Schleife … Sequenz MACHINE „A“ = „a“  .F. Sequenz GENERAL „A“ = „a“  .T.

20 Demo 3: Vergleiche Stringvergleiche und Sortiersequenzen

21 Rushmore-Optimierung
Indexdefinition vorhanden möglichst keine FOR/NOT-Klausel im Index Identische Indexdefinition zusammengesetzte Felder, Alltrim() Index auf Deleted() (bei SET DELE ON) problematisch! Passende Collatesequenz (IDXCOLLATE) möglichst keine Sortierung (SET ORDER TO) Keine Abfrage auf Empty( ) / IsBlank( ) Kein exakter Vergleich (SET EXACT/ANSI OFF/==) Kontrolle mit SYS(3054,1/11, neu) und SYS(3092)

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

23 Optimierungsmöglichkeiten
Verzeichniskomprimierung (+10% Performance!) Virusfilter für Endungen abschalten Verzicht auf Verschlüsselung (siehe oben) Verzicht auf Indizes mit wenig Unterscheidung Abschaltung Opportunistic Locking Hardware Mehrere / schnellere Netzwerkkarten User auf Stränge verteilen (z.B. 10 User/Strang) Gute HD-Controller mit viel Cache Verteilung von DBF und CDX auf versch. Festplatten

24 MAKETRANSACTABLE Maketransactable( ) für freie Tabellen, Cursor von freien Tabellen oder Created Cursor Istransactable( ) für Prüfung Darf noch nicht anderweitig geöffnet sein Kein Table Buffering erlaubt Bei Row Buffering wird Tableupdate durchgeführt Kann danach anderweitig geöffnet werden Transactable endet mit Schliessen letzter Instanz

25 Zusammenfassung Verbesserungen
Unterstützung für lange Feldtypbezeichnungen Leerzeichen in Tabellen und View-Namen Neue Datentypen Varchar / Varbinary / Blob Binär-Index (logischer Ausdruck = 1 Bit) Diverse Performanceverbesserungen Speicherbarkeit der Optimierungsprüfung Hinweis: Transaktionen auch für freie Tabellen Neues Tool: Memo Corruption Scanner

26 Weiterführendes Material
Visual FoxPro 9.0 Updatebuch Roadshow-CD Lokalisierungs-CD Visual FoxPro 8.0 Deutsche Hilfedatei Online-Angebote der dFPUG Forum, Portal, eNewsletter, Homepage, Framework

27 Teil 2: Arbeiten mit DBC Mittwoch, 29.6.2005, 16:00 – 17:00 Uhr
Eine der Grundlagen der objektorientierten Entwicklungsumgebung Microsoft Visual FoxPro 9.0 ist die integrierte leistungsfähige Datenbankengine für lokale Desktop-Anwendungen. Durch Datenbankcontainer werden freie Tabellen in einen grösseren Sinnzusammenhang gestellt. Behandelt werden erweiterte Tabelleneigenschaften, Relationen, Trigger, referentielle Integrität, Definition von Ansichten, Transaktionen sowie einige diesbezügliche neue Funktionen in der neuen Version.

28 Fragen an hotline@dfpug.de oder besser http://forum.dfpug.de
Vielen Dank! Fragen an oder besser Besuchen Sie unsere Webseiten:


Herunterladen ppt "Arbeiten mit Tabellen in Visual FoxPro 9.0"

Ähnliche Präsentationen


Google-Anzeigen