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

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Arbeiten mit Berichten in Visual FoxPro 9.0
COM-Server in Visual FoxPro 9.0
Grundlagen der Tabellen von FoxPro/Windows und Microsoft Visual FoxPro
Client / Server Architektur
Arbeiten mit Werkzeugen in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast TOOL.
Web-Services in Visual FoxPro 9.0
Datenbankcontainer in Microsoft Visual FoxPro
Client / Server mit Visual FoxPro 9.0
Arbeiten mit Tabellen in 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 –
Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group.
Neue DBF und DBC Befehle in Visual FoxPro
Lokal Views (Ansichten) in Visual FoxPro
Visual FoxPro 10.0 Visual Extend 10.0
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.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
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.
Uwe Habermann Venelina Jordanova VFP Code in Silverlight Anwendungen ausführen.
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.
Uwe Habermann VFX 11.0 VFX - DBF-CA Wizard Venelina Jordanova
Visual Extend Application Builder deutschsprachige FoxPro User Group Uwe Habermann VFX 07 D.
© 2004 Uwe Habermann Visual Extend 9.0 Technical Preview Diplom-Informatiker Uwe Habermann Visual Extend Product Manager
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.
Uwe Habermann VFX 11.0 Einsatz von Cursoradaptern in bestehenden Anwendungen Venelina Jordanova
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.
Uwe Habermann Venelina Jordanova Kostenloser Einstieg in eine neue Welt!
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.
© 2005 Uwe Habermann, Venelina Jordanova Visual Extend 9.0 Die Entwicklungsumgebung für VFP 9.0 Uwe Habermann Visual Extend Product Manager
Uwe Habermann Venelina Jordanova Bestehende VFX-Anwendungen leicht erweitern.
VFP-Praxis Reparatur von VFP Datenbanken
 Präsentation transkript:

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

Teil 2: Arbeiten mit DBC Mittwoch, , 16:00 – 17:00 Uhr 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. 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. 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.

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

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

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

Demo 1: Northwind Exkusives Öffnen erforderlich Exkusives Öffnen erforderlich Ein- und Ausblenden von Elementen Ein- und Ausblenden von Elementen Verschiedene Beispiele für Felddefinitionen Verschiedene Beispiele für Felddefinitionen

Reihenfolge Tabellenfeld-Valid (alle Felder) Tabellenfeld-Valid (alle Felder) Masken-Valid (aktuelles Element) Masken-Valid (aktuelles Element) Datensatz-Valid(ierung) Datensatz-Valid(ierung) Primary/Candidate-Schlüssel Primary/Candidate-Schlüssel Trigger Trigger kaskadierend über alle Childs kaskadierend über alle Childs Achtung: _TRIGGERLEVEL kann hoch werden Achtung: _TRIGGERLEVEL kann hoch werden

Gespeicherte Prozeduren I Gehören imanent zu den Tabellen und wird als Prozedur-Datei gesetzt! Gehören imanent zu den Tabellen und wird als Prozedur-Datei gesetzt! Werden auch über ODBC ausgeführt! Werden auch über ODBC ausgeführt! Verwendet für: Verwendet für: Feld-Validierung, Feld-Fehlermeldung Feld-Validierung, Feld-Fehlermeldung Satz-Validierung, Satz-Fehlermeldung Satz-Validierung, Satz-Fehlermeldung Feld-Default-Wert Feld-Default-Wert Trigger-Aufrufe Trigger-Aufrufe

Demo 2: Prozeduren Dokumentenansicht für gespeicherte Prozeduren Dokumentenansicht für gespeicherte Prozeduren Direktaufruf von gespeicherten Prozeduren Direktaufruf von gespeicherten Prozeduren

Gespeicherte Prozeduren II Kompilate in DBC-Datensatz sind versionsabhängig d.h. Neukompilieren (!) Kompilate in DBC-Datensatz sind versionsabhängig d.h. Neukompilieren (!) ggf. ausgelagerte Prozedurdatei verwenden ggf. ausgelagerte Prozedurdatei verwenden Tabellen/Felder finden richtige Prozedurdatei - eigene Anwendung verwendet aber nur aktiven DBC! Tabellen/Felder finden richtige Prozedurdatei - eigene Anwendung verwendet aber nur aktiven DBC! Set database to Set database to Namenskonventionen für DBC-Funktionen! Namenskonventionen für DBC-Funktionen!

DBC-Ereignisse Ab VFP-Version 7, defaultmäßig deaktiviert Ab VFP-Version 7, defaultmäßig deaktiviert einschalten über DBC-Optionen einschalten über DBC-Optionen Dbsetprop(Main.dbc,Database,DBCEVENTS,.t.) Dbsetprop(Main.dbc,Database,DBCEVENTS,.t.) Wenn aktiviert, DBC nicht mehr abwärtskompatibel Wenn aktiviert, DBC nicht mehr abwärtskompatibel Funktionen liegen im DBC bei den gespeicherten Prozeduren oder in einer externen PRG-Datei Funktionen liegen im DBC bei den gespeicherten Prozeduren oder in einer externen PRG-Datei Vorsicht: Datasessions beachten! Vorsicht: Datasessions beachten! Für Zugriffsschutz und zur Protokollierung … Für Zugriffsschutz und zur Protokollierung …

Demo 3: Events und RI Bearbeiten von Datenbankereignissen Bearbeiten von Datenbankereignissen Erstellen von Relationen Erstellen von Relationen Assistent für Referentiellen Integrität Assistent für Referentiellen Integrität

Relationen One-to-One-Relationen One-to-One-Relationen One-to-Many-Relationen One-to-Many-Relationen Many-to-Many-Relationen Many-to-Many-Relationen Basis für referentielle Integrität Basis für referentielle Integrität Einblendung in Datenumgebung Einblendung in Datenumgebung Einblendung bei Ansichtserstellung Einblendung bei Ansichtserstellung

Referentielle Integrität (RI) Bedeutung der Referentiellen Integrität einer Datenbank Bedeutung der Referentiellen Integrität einer Datenbank Arbeiten mit dem Referential Integrity Builder Arbeiten mit dem Referential Integrity Builder Empfehlung: AMRI-Builder ! Empfehlung: AMRI-Builder !Programmatisch: CREATE TRIGGER CREATE TRIGGER DELETE TRIGGER DELETE TRIGGER _TRIGGERLEVEL _TRIGGERLEVEL Arten von Triggern: DELETE DELETE UPDATE UPDATE INSERT INSERT

Besonderheiten der Trigger DELETE-Trigger: Childs löschen mit Parent / verhindern DELETE-Trigger: Childs löschen mit Parent / verhindern Bei DELETE -> Cascading Delete Bei DELETE -> Cascading Delete Nicht bei ZAP (!) Nicht bei ZAP (!) Nicht bei PACK Nicht bei PACK INSERT-Trigger: Childs nur zu Parents INSERT-Trigger: Childs nur zu Parents Bei Append, Insert, Import Bei Append, Insert, Import Auch bei RECALL Auch bei RECALL UPDATE-Trigger: Aktualisierung Fremdschlüsselfelder UPDATE-Trigger: Aktualisierung Fremdschlüsselfelder Bei replace, Gather, Update Bei replace, Gather, Update Nicht bei DELETED() Nicht bei DELETED()

Hinweise zu Triggern Im Gegensatz zu Feld-Valid und Satz-Valid ist ein Triggerfehler ein endgültiger Fehler! Im Gegensatz zu Feld-Valid und Satz-Valid ist ein Triggerfehler ein endgültiger Fehler! Das heißt: VFP macht Rollback über alle Ebenen VFP macht Rollback über alle Ebenen Nicht zulässig: Ändern von Daten! Ändern von Daten! Update-Endlosschleife... Update-Endlosschleife... Compound Keys Compound Keys Verschiedene DBCs Verschiedene DBCs Kein Nullify für Delete von Parent Kein Nullify für Delete von Parent Builder nicht änderbar Builder nicht änderbar

Multiuser-Datenzugriff Generell Öffnen im SHARED AGAIN-Modus Generell Öffnen im SHARED AGAIN-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

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 / BLANK / FOR APPEND / BLANK / FOR INSERT (SQL) INSERT (SQL) RECORD LOCK: APPEND MEMO APPEND MEMO DELETE / REPLACE / RECALL / w/wo NEXT 1 DELETE / REPLACE / RECALL / w/wo NEXT 1 DELETE / BLANK REC. DELETE / BLANK REC. GATHER GATHER CHANGE / EDIT CHANGE / EDIT MODI MEMO MODI MEMO BROWSE (Childs!) BROWSE (Childs!)

Sperren auch beim Lesen Beim Verarbeiten von nebenstehenden Befehlen wird nicht gesperrt! Beim Verarbeiten von nebenstehenden Befehlen wird nicht gesperrt! SET LOCK ON oder FLOCK() sinnvoll! SET LOCK ON oder FLOCK() sinnvoll! Ggf. vorher SQL-Select in Cursor Ggf. 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

Hinweise zur Pufferung Problem: Änderung von Datensätzen durch andere Netz-User erst sichtbar durch/nach: Problem: Änderung von Datensätzen durch andere Netz-User erst sichtbar durch/nach: SET REFRESH SET REFRESH Neue Parameter in VFP 9.0 Neue Parameter in VFP 9.0 SKIP, GOTO, SEEK SKIP, GOTO, SEEK Satzsperre RLOCK Satzsperre RLOCK Lösung: Beim Lesen 1x Sperren Lösung: Beim Lesen 1x Sperren Ggf. locate for recno() = lnrecno Ggf. locate for recno() = lnrecno Neu: FLUSH IN … (FORCE) Neu: FLUSH IN … (FORCE)

Transaktionen BEGIN TRANS BEGIN TRANS *-- Datenzugriff *-- Datenzugriff END TRANS END TRANS ROLLBACK ROLLBACK Absturz = Rollback Absturz = Rollback Rollback bei Öffnen! Rollback bei Öffnen! TXNLEVEL() TXNLEVEL() bis 5 Ebenen tief! bis 5 Ebenen tief! Äußerste Ebene zählt! Äußerste Ebene zählt! Experimente mit Transaktionen: 1 Tabelle 1 Tabelle 2 Tabellen aus DBC 2 Tabellen aus DBC Verschiedene DBCs Verschiedene DBCs Freie Tabellen Freie Tabellen Geschachtelt Geschachtelt Task-Manager! Task-Manager!

Hinweise zu Transaktionen Buffering eingeschaltet = Transaktion läuft nur auf Buffer und nicht auf Platte! Buffering eingeschaltet = Transaktion läuft nur auf Buffer und nicht auf Platte! Buffering ausgeschaltet = Transaktion läßt Einschalten Buffering nicht zu! Buffering ausgeschaltet = Transaktion läßt Einschalten Buffering nicht zu! Dadurch ggf. neue Sätze nicht anlegbar (Valid) Dadurch ggf. neue Sätze nicht anlegbar (Valid) Lösung: Buffering mit Tableupdate und dann END TRANS Lösung: Buffering mit Tableupdate und dann END TRANS Freie Tabellen ohne Meldung! Freie Tabellen ohne Meldung! Deadlocks möglich - Zugriffsreihenfolge! Deadlocks möglich - Zugriffsreihenfolge!

Zugriffsreihenfolge beachten Zur Vermeidung von Deadlocks im Netzbetrieb: Tabellen nach Parent->Child Tabellen nach Parent->Child Immer erst den Parent sperren Immer erst den Parent sperren notfalls per SQL-Select erst die Parents holen notfalls per SQL-Select erst die Parents holen Datensätze nach Primärschlüssel Datensätze nach Primärschlüssel notfalls per SQL-Select umsortieren notfalls per SQL-Select umsortieren Mehrere Parents ggf. alphabetisch Mehrere Parents ggf. alphabetisch sofern Parents nicht in Parent-Child-Beziehung sofern Parents nicht in Parent-Child-Beziehung

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

Querverweise Schützen einer Tabelle in einem DBC Schützen einer Tabelle in einem DBC Schützen von VFP Daten Schützen von VFP Daten Die Normalisierung von Daten Die Normalisierung von Daten

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

Teil 3: Arbeiten mit SQL Mittwoch, , 16:00 – 17:00 Uhr Mittwoch, , 16:00 – 17:00 Uhr Die Standard Query Language, kurz SQL, ist in der lokalen Datenbankengine von Visual FoxPro als kompilierbarer Befehl direkt enthalten. In diesem WebCast werden die umfangreichen neuen Möglichkeiten der SQL-Syntax in der neuen Version Visual FoxPro 9.0 vorgestellt. Mit der neuen Syntax ist Visual FoxPro nunmehr weitestgehend kompatibel zu SQL-Server, welches die Umschaltbarkeit zwischen verschiedenen Datenhaltungssystemen drastisch vereinfacht. Aber selbst die kleinste Anwendung kann von der neuen Flexibilität im SQL-Bereich deutlich profitieren! Die Standard Query Language, kurz SQL, ist in der lokalen Datenbankengine von Visual FoxPro als kompilierbarer Befehl direkt enthalten. In diesem WebCast werden die umfangreichen neuen Möglichkeiten der SQL-Syntax in der neuen Version Visual FoxPro 9.0 vorgestellt. Mit der neuen Syntax ist Visual FoxPro nunmehr weitestgehend kompatibel zu SQL-Server, welches die Umschaltbarkeit zwischen verschiedenen Datenhaltungssystemen drastisch vereinfacht. Aber selbst die kleinste Anwendung kann von der neuen Flexibilität im SQL-Bereich deutlich profitieren!

Teil 4: Arbeiten mit C/S Mittwoch, , 16:00 – 17:00 Uhr Mittwoch, , 16:00 – 17:00 Uhr Microsoft Visual FoxPro ist schon seit einem Jahrzehnt ein beliebtes Frontend für Client/Server-Datenbanken wie Microsoft SQL-Server. Über die Hälfte der FoxPro-Entwickler weltweit entwickelt auch oder ausschliesslich Anwendungen auf Basis von MSDE und/oder SQL-Server. In der neuen Version 9.0 von Microsoft Visual FoxPro werden diese Möglichkeiten noch weiter ausgebaut. Unter anderem wurde die Cursor Adaptor-Klasse stark verbessert und weitere Werkzeuge wie der Dataexplorer werden zur Verfügung gestellt.

Vielen Dank! Fragen an oder besser Besuchen Sie unsere Webseiten: