Arbeiten mit Tabellen in Visual FoxPro 9.0

Slides:



Advertisements
Ähnliche Präsentationen
Arbeiten mit Berichten in Visual FoxPro 9.0
Advertisements

MySQL.
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
COM-Server in Visual FoxPro 9.0
Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro
Arbeiten mit Werkzeugen in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast TOOL.
Arbeiten mit Formularen in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast FORM.
Arbeiten mit DBC in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast DBC.
Datenbankcontainer in Microsoft Visual FoxPro
Client / Server mit Visual FoxPro 9.0
Datenmodellierung mit XCASE
Wizards & Builders GmbH Microsoft Titel Microsoft-Titel für Entwickler und Softwarehäuser.
Wizards & Builders GmbH Die Benutzeroberfläche Interaktives Arbeiten mit den Werkzeugen/Assistenten von Microsoft Visual FoxPro.
Arbeiten mit Berichten unter Visual FoxPro 9.0
Ausführen von Berichten unter Visual FoxPro 9.0
Arbeiten mit SQL in Visual FoxPro 9.0
MSDN Webcast Visual Studio 2005 mit Visual FoxPro Jochen Kirstätter Mai 2005 –
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group.
VFP Beispiele sowie Tools, Frameworks und Klassen
Neue DBF und DBC Befehle in Visual FoxPro
Lokal Views (Ansichten) in Visual FoxPro
Visual FoxPro 10.0 Visual Extend 10.0
© 2005 Uwe Habermann Visual Extend 9.5 Technical Preview Uwe Habermann Visual Extend Product Manager
Rushmore - Einführung oder wie Sie Fehler vermeiden.
Visual Extend Anwendertreffen 2009 deutschsprachige FoxPro User Group Uwe Habermann, Venelina Jordanova, Fritz Maurhofer, Rainer Becker VFXAWD09.
VFX Schnelle Anwendungs-entwicklung mit Visual FoxPro 9.0 und Visual Extend 9.0 deutschsprachige FoxPro User Group Uwe Habermann Microsoft Visual FoxPro.
Arbeiten mit Daten in Visual FoxPro 9.0
Client/Server mit Visual FoxPro 9.0
Arbeiten mit Formularen in Visual FoxPro 9.0
Arbeiten mit Konstanten in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow CONST.
Arbeiten mit SQL in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow SQL.
Erstellen von WebServices mit Visual FoxPro 9.0
Einführung zur Roadshow zu Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow INTRO.
Visual Extend 9.5ff Most Wanted Features deutschsprachige FoxPro User Group Rainer Becker VFXWISH06.
Netzwerkprogrammierung unter Visual FoxPro. © 1999 TMN-Systemberatung GmbH Probleme im Netzbetrieb n Mehrere Benutzer arbeiten auf den gleichen Datensatz.
Active Extend deutschsprachige FoxPro User Group Rainer Becker VFXAFX06.
VFX 10.0 Visual Extend Datenzugriff
Visual Extend Was ist wo? deutschsprachige FoxPro User Group Rainer Becker VFXWASWO.
Visual FoxPro 6.0 Visual FoxPro einrichten Datenbanken und Tabellen.
Visual Extend Weitere Features deutschsprachige FoxPro User Group Uwe Habermann VFX 25 D.
Visual Extend Features für Entwickler deutschsprachige FoxPro User Group Uwe Habermann VFX 05 D.
Visual Extend Anwendertreffen 2006 deutschsprachige FoxPro User Group Uwe Habermann, Peter Herzog, Fritz Maurhofer, Rainer Becker VFXAWD06.
Visual Extend Application Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 07 D.
Visual Extend Anwendertreffen 2007 deutschsprachige FoxPro User Group Uwe Habermann, Rainer Becker VFXAWD07.
Visual Extend Anwendertreffen 2008
Visual Extend Produktaktivierung deutschsprachige FoxPro User Group Uwe Habermann VFX 23 D.
Visual Extend Kundeninstallation deutschsprachige FoxPro User Group Uwe Habermann VFX 26 D.
Herzlich Willkommen zum VFX-Anwendertreffen! deutschsprachige FoxPro User Group Rainer Becker Visual Extend 9.0 Anwendertreffen 2005 INTRO.
Visual Extend Features der generierten Anwendung für Endbenutzer deutschsprachige FoxPro User Group Uwe Habermann VFX 04 D.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Visual Extend CTableForm Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 08 D.
Visual Extend CursorAdapter deutschsprachige FoxPro User Group Uwe Habermann VFX 18 D.
Visual Extend CDataFormPage Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 09 D.
Visual Extend CPickAlternate Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 14 D.
Visual Extend Download, Installation, Registrierung deutschsprachige FoxPro User Group Uwe Habermann VFX 01 D.
Visual Extend Mandantenfähigkeit deutschsprachige FoxPro User Group Uwe Habermann VFX 22 D.
Visual Extend CPickAlterTextbox Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 16 D.
Visual Extend CPickTextbox Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 15 D.
Visual Extend Lokalisierung deutschsprachige FoxPro User Group Uwe Habermann VFX 24 D.
Visual Extend CPickField Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 13 D.
Visual Extend Application Wizard deutschsprachige FoxPro User Group Uwe Habermann VFX 06 D.
Visual Extend COneToMany Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 10 D.
Visual Extend CTreeviewForm Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 11 D.
Visual Extend Parent/Child Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 17 D.
Visual Extend CDataFormPage-Formulare mit CursorAdapter deutschsprachige FoxPro User Group Uwe Habermann VFX 19 D.
Uwe Habermann Venelina Jordanova Bestehende VFX-Anwendungen leicht erweitern.
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
D-SQL SQLization – endlich Client/Server!
 Präsentation transkript:

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

Teil 1: Arbeiten mit Tabellen Mittwoch, 8.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. 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.

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

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

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

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

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

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

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!

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

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

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

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

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

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.

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

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

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!

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.

Demo 3: Vergleiche Stringvergleiche und Sortiersequenzen

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)

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

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

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

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

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

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.

Fragen an hotline@dfpug.de oder besser http://forum.dfpug.de Vielen Dank! Fragen an hotline@dfpug.de oder besser http://forum.dfpug.de Besuchen Sie unsere Webseiten: http://www.dfpug.de, http://portal.dfpug.de, http://forum.dfpug.de, http://newsletter.dfpug.de, http://devcon.dfpug.de, http://roadshow.dfpug.de, http://www.visualextend.de, http://www.linuxtransfer.de, http://www.visualfoxpro.de