Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Kreszentia Naatz Geändert vor über 11 Jahren
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:
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.