Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Wizards & Builders GmbH Client/Server-Programmierung Erstellung von Client/Server- Datenbankapplikationen unter Microsoft Visual FoxPro.

Ähnliche Präsentationen


Präsentation zum Thema: "Wizards & Builders GmbH Client/Server-Programmierung Erstellung von Client/Server- Datenbankapplikationen unter Microsoft Visual FoxPro."—  Präsentation transkript:

1 Wizards & Builders GmbH Client/Server-Programmierung Erstellung von Client/Server- Datenbankapplikationen unter Microsoft Visual FoxPro

2 Wizards & Builders GmbH Diese Schulung dient der Einführung in die Client/Server-Programmierung mit Microsoft Visual FoxPro und Microsoft SQL Server

3 Wizards & Builders GmbH Themenübersicht Client/Server Client/Server Connections und Connections und Remote Views Remote Views SQL-Pass-Through SQL-Pass-Through MS SQL-Server MS SQL-Server Unterschiede zu Server-DB Unterschiede zu Server-DB Optimierung C/S Optimierung C/S The Red Classes The Red Classes

4 Wizards & Builders GmbH Client/Server Konzepte der Client/Server- Programmierung unter Microsoft Visual FoxPro

5 Wizards & Builders GmbH Definition Datenbank Logische Datenunabhängigkeit Logische Datenunabhängigkeit Physikalische Datenunabhängigkeit Physikalische Datenunabhängigkeit Prozedurale Schnittstellen Prozedurale Schnittstellen Effiziente Abarbeitung von Operationen Effiziente Abarbeitung von Operationen minimale Datenredundanz minimale Datenredundanz Datenintegrität Datenintegrität konkurrierender Datenzugriff konkurrierender Datenzugriff Datensicherheit Datensicherheit Datenschutz (Zugriffsschutz) Datenschutz (Zugriffsschutz)

6 Wizards & Builders GmbH Definition Client/Server Client/Server bedeutet: ein Zusammenspiel von mehreren Computern, mit der Verteilung der Aufgaben zwischen den Maschinen Der Server übernimmt Speicher und CPU intensive Aufgaben Der Server übernimmt Speicher und CPU intensive Aufgaben Der Client übernimmt Auswertungen und Präsentation Der Client übernimmt Auswertungen und Präsentation

7 Wizards & Builders GmbH Vorteile/Gründe Client/Server Geringere Hardwarekosten (statt Mainframe o.ä.) Geringere Hardwarekosten (statt Mainframe o.ä.) Geringere Entwicklungskosten (dito) Geringere Entwicklungskosten (dito) Integration mit PC Software Integration mit PC Software Skalierbarkeit von Architekturen (statt Multiuser) Skalierbarkeit von Architekturen (statt Multiuser) Datensicherheit (Mirroring, Backup) Datensicherheit (Mirroring, Backup) Geringere Belastung des Netzes Geringere Belastung des Netzes weil es der Chef/Kunde so will... (Marketing) weil es der Chef/Kunde so will... (Marketing)

8 Wizards & Builders GmbH Bewertung der Gründe Der Trend zu Client/Server kommt aus dem Bereich der Mainframes (Downsizing) Der Trend zu Client/Server kommt aus dem Bereich der Mainframes (Downsizing) Gründe für Upsizing: Gründe für Upsizing: Sicherheit der Daten Sicherheit der Daten Anwendungen in WANs, Anwendungen in WANs, sehr große Datenmengen (Gigabytes) sehr große Datenmengen (Gigabytes) der Wunsch des Kunden der Wunsch des Kunden

9 Wizards & Builders GmbH Architekturen Presentation Application Function Data Management Application Function Presentation Data Management Network Distributed Presentation Distributed Data Mgmt. Remote Data Mgmt. Distributed Function Remote Presentation

10 Wizards & Builders GmbH Visual FoxPro und SQL-Server Visual FoxPro arbeitet im Client/Server Bereich besonders gut mit SQL Server zusammen (Upsizing Wizard) - was aber nichts über die erreichbare Performance aussagen soll... Visual FoxPro arbeitet im Client/Server Bereich besonders gut mit SQL Server zusammen (Upsizing Wizard) - was aber nichts über die erreichbare Performance aussagen soll... Grundsätzlich sind fast alle hier vorgestellten Möglichkeiten auch mit anderen ODBC Datenquellen gegeben (in Abhängigkeit vom jeweiligen Treiber) Grundsätzlich sind fast alle hier vorgestellten Möglichkeiten auch mit anderen ODBC Datenquellen gegeben (in Abhängigkeit vom jeweiligen Treiber)

11 Wizards & Builders GmbH ODBC-Architektur Application ODBC driver Driver manager ODBC API ODBC SPI Network Network interface Database

12 Wizards & Builders GmbH Connections und Remote Views Interaktive und programmatische Definition von Connections/Remote Views

13 Wizards & Builders GmbH ODBC-Manager ODBC-Manager (Systemsteuerung) ODBC-Manager (Systemsteuerung) Installation der ODBC- Verbindung Installation der ODBC- Verbindung ggf. Network Lib ggf. Network Lib ggf. Trusted Conn. ggf. Trusted Conn. ggf. Database Name ggf. Database Name

14 Wizards & Builders GmbH Interaktive Definition Auswahl von Datasource Auswahl von Datasourceoder Definiton einer Connection Definiton einer Connection Auswahl Tabellen Auswahl Tabellen Definition von Remote Views Definition von Remote Views Zusatzeinstellungen für Remote Views (im Menü) Zusatzeinstellungen für Remote Views (im Menü) Wichtig: Vergabe von Parametern! Wichtig: Vergabe von Parametern!

15 Wizards & Builders GmbH Auswahl Datasource Anlegen / Öffnen Datenbank-container Anlegen / Öffnen Datenbank-container Auswahl Datasource Auswahl Datasourceoder Definition einer Connection Definition einer Connection

16 Wizards & Builders GmbH Definition Connection User/Pwd/Databas e User/Pwd/Databas e Aysnchron (?) Aysnchron (?) Endanwender- Warnungen (?) Endanwender- Warnungen (?) Transaktionen Transaktionen Paketgröße Paketgröße diverse Zeiten diverse Zeiten

17 Wizards & Builders GmbH Auswahl Tabellen Übersicht über Database Übersicht über Database Join auf dem Server (siehe ODBC-Join) Join auf dem Server (siehe ODBC-Join)

18 Wizards & Builders GmbH Definition Remote View (1) Komplett-download Komplett-download ohne Unterbrechung ohne Unterbrechung Parameter: Parameter: ? Abfrage Abfrage Variable Variable Property Property Wildcards Wildcards % _

19 Wizards & Builders GmbH Definition Remote View (2) Primärschlüssel Primärschlüssel Änderbare Felder Änderbare Felder Send SQL-Update Send SQL-Update SQL-Where: SQL-Where: Key Fields Key Fields Key & Updatable Key & Updatable Key & Modified Key & Modified Key & Timestamp (!) Key & Timestamp (!)

20 Wizards & Builders GmbH Zusatzparameter Remote View Share Connection Share Connection No. of Records to Fetch at a time No. of Records to Fetch at a time Maximum No. of Records to fetch Maximum No. of Records to fetch Use Memo when character field length > Use Memo when character field length > No. of Records to Batch Update No. of Records to Batch Update Fetch Memo Fetch Memo Include Memo fields in Where-Clause Include Memo fields in Where-Clause Precompile on Backend Server Precompile on Backend Server

21 Wizards & Builders GmbH Programmatisch Anlegen CREATE CONNECTION CREATE CONNECTION DATASOURCE sqlremote userid password DATASOURCE sqlremote userid password CREATE SQL VIEW REMOTE CREATE SQL VIEW REMOTE oder CONNECTION oder CONNECTION USE USE AGAIN(ggf. gleiche Parameter!) AGAIN(ggf. gleiche Parameter!) NOREQUERY(gleiche Daten) NOREQUERY(gleiche Daten) NODATA(keine Daten, nur Struktur) NODATA(keine Daten, nur Struktur)

22 Wizards & Builders GmbH SQL-Passthrough Direktzugriff auf SQL-Server- Datenbanken statt Verwendung von Remote Views in Microsoft Visual FoxPro

23 Wizards & Builders GmbH Unterschiede zwischen Remote View / SQL-PassThrough Remote View: VFP SQL-Select VFP SQL-Select Controlsource Controlsource Connection-Mgmt. Connection-Mgmt. Default-Update-Info Default-Update-Info Metadaten in DBC Metadaten in DBC Progressive Fetch Progressive FetchSQL-Passthrough: Native Server SQL Native Server SQL DDL-Zugriff DDL-Zugriff Multiple Result-Sets Multiple Result-Sets Transactions Transactions Non-Updatable Non-Updatable Cursorsetprop() Cursorsetprop()

24 Wizards & Builders GmbH Zugriff mit SQL-Passthrough Test der Connection (ODBC-Test) Test der Connection (ODBC-Test) *-- Verbindung herstellen Handle=SQLConnect(data, sa, pwd) *-- Ausführen Abfrage =SQLExec(Handle, SQL, cursor) *-- Arbeiten mit View (Update/Revert) =SQLDisconnect( Handle )

25 Wizards & Builders GmbH SQL-Connect / Metadata (1) SQLCONNECT( ) SQLCONNECT( ) SQLSTRINGCONNECT( ) SQLSTRINGCONNECT( ) SQLDISCONNECT( ) SQLDISCONNECT( ) SQLTABLES( * ) SQLTABLES( * ) SQLCOLUMNS( * ) SQLCOLUMNS( * )

26 Wizards & Builders GmbH SQL-Statements (2) SQLEXEC( * ) SQLEXEC( * ) SQLMORERESULTS( * ) SQLMORERESULTS( * ) SQLCANCEL( = )Abbruch SQLCANCEL( = )Abbruch SQLPREPARE( )Precompiling SQLPREPARE( )Precompiling SQLCOMMIT( )Commit Trans. SQLCOMMIT( )Commit Trans. SQLROLLBACK( )Cancel Trans. SQLROLLBACK( )Cancel Trans.

27 Wizards & Builders GmbH SQL-Statements (3) SQLEXEC( Handle, StoredProcedure) SQLEXEC( Handle, StoredProcedure) SQLEXEC( Handle, Create Proc) SQLEXEC( Handle, Create Proc) myproc as select *, select *, select * / SQLEXEC myproc as select *, select *, select * / SQLEXEC SQLGETPROP( ) SQLGETPROP( ) SQLSETPROP( ) SQLSETPROP( ) AERROR( ) AERROR( )

28 Wizards & Builders GmbH Parameter Aufruf mit Parametern: Aufruf mit Parametern: =SQLExec( Handle, where = ?cVar) =SQLExec( Handle, {CALL sp_test ()}) z.B. 2,4, ?@Result für Create Procedure sp_test @m1 int, @m2 int, @result int output as select @m1 * @m2 z.B. 2,4, ?@Result für Create Procedure sp_test @m1 int, @m2 int, @result int output as select @m1 * @m2 Float (N,F,B) wird zu N konvertiert Float (N,F,B) wird zu N konvertiert Anzeigebreite 20 Anzeigebreite 20 Date, Time wird zu Datetime Date, Time wird zu Datetime

29 Wizards & Builders GmbH Joins, Connection Defaults Outer Join auf Server: a *= b Outer Join auf Server: a *= b Outer Join auf ODBC: {oj expression} Outer Join auf ODBC: {oj expression} from {oj a left outer join b on a.id = b.id} from {oj a left outer join b on a.id = b.id} SQLSETPROP/SQLGETPROP( 0 ) SQLSETPROP/SQLGETPROP( 0 )

30 Wizards & Builders GmbH Connection Properties ConnectString, DataSource, UserID, Pw ConnectString, DataSource, UserID, Pw DispLogin, DispWarning, ConnectBusy DispLogin, DispWarning, ConnectBusy Connect/Idle/QueryTimeout, WaitTime Connect/Idle/QueryTimeout, WaitTime Aynchronous, BatchMode Aynchronous, BatchMode Transactions, PacketSize Transactions, PacketSize ODBChdbc2, ODBChstmt2 (für FLLs!) ODBChdbc2, ODBChstmt2 (für FLLs!)

31 Wizards & Builders GmbH Transaktionen DB/SQLSETPROP( Transaction, n) DB/SQLSETPROP( Transaction, n) Automatischn = 1(Default) Automatischn = 1(Default) Manuelln = 2 Manuelln = 2 VFP-Transaktionen getrennt davon! VFP-Transaktionen getrennt davon! SQL-Passthrough hat nur einen Transaktions-Level! SQL-Passthrough hat nur einen Transaktions-Level!

32 Wizards & Builders GmbH Asynchrone Ausführung (1) Default: Synchrone Ausführung (Wait) Default: Synchrone Ausführung (Wait) Möglich: Asynchrone Ausführung für Möglich: Asynchrone Ausführung für SQLEXEC, SQLMORERESULTS SQLEXEC, SQLMORERESULTS SQLTABLES, SQLCOLUMNS SQLTABLES, SQLCOLUMNS Abbruch mit SQLCANCEL( ) Abbruch mit SQLCANCEL( ) Non-Batch-Mode: Sqlmoreresults() Non-Batch-Mode: Sqlmoreresults() Mischung: Async/Sync-Batch/Non-Batch Mischung: Async/Sync-Batch/Non-Batch

33 Wizards & Builders GmbH Asynchrone Ausführung (2)

34 Wizards & Builders GmbH MS SQL Server Einführung in das Arbeiten mit Microsoft SQL-Server

35 Wizards & Builders GmbH Vorgeschichte Dr. Eppstein und Mark Hoffmann Dr. Eppstein und Mark Hoffmann SYBASE ab 1987 SYBASE ab 1987 Vertrieb durch Microsoft Vertrieb durch Microsoft Übernahme Quellcode als Eigenprodukt Übernahme Quellcode als Eigenprodukt Weiterentwicklung (Oberfläche, Integration, Kundenwünsche) Weiterentwicklung (Oberfläche, Integration, Kundenwünsche)

36 Wizards & Builders GmbH Installation Named Pipes als Protokoll (TCP/IP) Named Pipes als Protokoll (TCP/IP) Physikalischer Pfad Physikalischer Pfad Automatischer Start (nur bei Server) Automatischer Start (nur bei Server) Zeichensatz und Sortierung (einheitlich für Datenbank) Zeichensatz und Sortierung (einheitlich für Datenbank) Lokales Systemkonto (statt User) Lokales Systemkonto (statt User) Anlage MASTER.DAT (25 MB) Anlage MASTER.DAT (25 MB)

37 Wizards & Builders GmbH SQL Enterprise Manager Registrierung beim Erststart (SA) Registrierung beim Erststart (SA) SQL-Service Manager SQL-Service Manager SQL-Mail, SQL-Executive SQL-Mail, SQL-Executive Database Devices Database Devices Backup Devices Backup Devices Databases Databases Logins (User, Rechte) Logins (User, Rechte)

38 Wizards & Builders GmbH Devices eigentlich Drive eigentlich Drive Create Now oder Create Now oder via Executive via Executive Mirroring Mirroring Vergrößern (Right / Rechte beachten) Vergrößern (Right / Rechte beachten) Verkleinern NEIN Verkleinern NEIN Backup Devices Backup Devices Platte, Bandlaufwerk Platte, Bandlaufwerk

39 Wizards & Builders GmbH Datenbanken in einem Device in einem Device Größe änderbar Größe änderbar max. 7 Terabyte Gesamtgröße max. 7 Terabyte Gesamtgröße Transaction Log Transaction Log anderes Device anderes Device ausreichende Größe ausreichende Größe Create for Load Create for Load statt mit 0 auffüllen statt mit 0 auffüllen

40 Wizards & Builders GmbH Tabellen / Zugriffsrechte Tabellen Tabellen Ansichten (SQL) Ansichten (SQL) Stored Procedure Stored Procedure Transact SQL Transact SQL extended procedures extended procedures Regeln (Feld-/Satz- Validierung) Regeln (Feld-/Satz- Validierung) Defaultwerte Defaultwerte Datentypen (s.o.) Datentypen (s.o.)

41 Wizards & Builders GmbH Pages / Indizes Pagesize Pagesize 2048 Byte je Page, 2016 für Datensätze 2048 Byte je Page, 2016 für Datensätze Pagelocking (ggf. mehrere Sätze gesperrt!) Pagelocking (ggf. mehrere Sätze gesperrt!) Indizes Indizes CLUSTEREDvorsortiert, Lesen schnell CLUSTEREDvorsortiert, Lesen schnell NON-CLUSTEREDschneller beim Schreiben NON-CLUSTEREDschneller beim Schreiben Transaction Log Transaction Log ohne Order by wird erster Index verwendet ohne Order by wird erster Index verwendet

42 Wizards & Builders GmbH Server-Konfiguration Fill FactorFüllgröße Indexpages Fill FactorFüllgröße Indexpages LE Treshold Max.Pagelocks für Dateisperre LE Treshold Max.Pagelocks für Dateisperre LE Treshold PercentDito in Prozent LE Treshold PercentDito in Prozent LocksAnzahl Satzsperren (32 B) LocksAnzahl Satzsperren (32 B) MemorySpeicher (2 Kilobyte) MemorySpeicher (2 Kilobyte) Open DatabasesOffene Datenbanken Open DatabasesOffene Datenbanken Open ObjectsOffene Objekte (70 Byte) Open ObjectsOffene Objekte (70 Byte) User ConnectionsOffene Verbindungen User ConnectionsOffene Verbindungen Speicherbedarf höher, bei Überschreitung Probleme! Speicherbedarf höher, bei Überschreitung Probleme!

43 Wizards & Builders GmbH Unterschiede SQL-Server-DB Unterschiede von SQL-Server- Datenbanken zu Datenbanken in Microsoft Visual FoxPro

44 Wizards & Builders GmbH Vorbereitung für Upsizing Platz auf Harddisk großzügig! Platz auf Harddisk großzügig! Zugriffsrechte Zugriffsrechte Create Table/Default, Database/Select, Admin Create Table/Default, Database/Select, Admin Datenbankgröße (DBF*1.3, FPT*x) Datenbankgröße (DBF*1.3, FPT*x) Memofeld 32 Byte wird zu Page a 2048 Byte (z.B. 10.000 Memos = 320 KB -> 20 MB ) Memofeld 32 Byte wird zu Page a 2048 Byte (z.B. 10.000 Memos = 320 KB -> 20 MB ) Alter Database Alter Database Device-Größe Device-Größe Größe Transaction-Log > Datenerstbestand Größe Transaction-Log > Datenerstbestand

45 Wizards & Builders GmbH Objekt-Mapping (1) MS Visual FoxPro: Datenbank Datenbank Tabelle Tabelle Feld Feld Index Index Default Default Satzvalidierung Satzvalidierung Feldvalidierung Feldvalidierung Persistente Relation Persistente Relation MS SQL-Server: Datenbank Datenbank Tabelle Tabelle Feld Feld Index Index Default Default Stored Proc (Upd/Ins) Stored Proc (Upd/Ins) Upd/Ins/Del-Trigger oder Table Constraints Upd/Ins/Del-Trigger oder Table Constraints

46 Wizards & Builders GmbH Field-Mapping (2) MS Visual FoxPro: Character Character Currency Currency Date Date Datetime Datetime Double Double Float Float General General MS SQL-Server: Char Char Money Money Datetime Datetime Float Float Image Image

47 Wizards & Builders GmbH Field-Mapping (3) MS Visual FoxPro: Integer Integer Logical Logical Memo Memo Memo Binary Memo Binary Character Binary Character Binary Numeric Numeric MS SQL-Server: Int Int Bit Bit Text Text Image Image Binary Binary Float Float

48 Wizards & Builders GmbH Index-Mapping (4) MS Visual FoxPro: Primary Primary Candidate Candidate Regular Regular Unique Unique MS SQL-Server: Clustered Unique Clustered Unique Unique Unique Non-Unique Non-Unique Keine Ausdrücke Keine Ausdrücke Kein Asc/Desc Kein Asc/Desc

49 Wizards & Builders GmbH Expression Mapping (5 ff.) MS Visual FoxPro: cMonth() usw. cMonth() usw. Day(), Hour() usw. Day(), Hour() usw. Dtoc() usw. Dtoc() usw. Date() usw. Date() usw..T. /.F..T. /.F. keine Punkte bei AND/OR/NOT/NULL keine Punkte bei AND/OR/NOT/NULL MS SQL-Server: DATENAME() DATENAME() DATEPART() DATEPART() CONVERT() CONVERT() GETDATE() GETDATE() 0 / 1 0 / 1

50 Wizards & Builders GmbH Aufräumarbeiten Nachbesserung Konvertierung: Eindeutige Schlüssel nachtragen (Upd) Eindeutige Schlüssel nachtragen (Upd) Konfiguration von: Datenbankzugriffsrechte (sp_adduser) Datenbankzugriffsrechte (sp_adduser) Objektzugriffsrechte (GRANT/REVOKE) Objektzugriffsrechte (GRANT/REVOKE) Recovering (ggf. Database Dump) Recovering (ggf. Database Dump) Backup Scheduling Backup Scheduling Device Mirroring Device Mirroring

51 Wizards & Builders GmbH Überprüfungen Referentielle Integrität / Trigger (Neu!) Referentielle Integrität / Trigger (Neu!) Default-Werte (erst nach Insert!) Default-Werte (erst nach Insert!) Field/Table-Validations (Neu!) Field/Table-Validations (Neu!) Event Order ggf. anders Event Order ggf. anders Lostfocus (Satz statt Feld) Lostfocus (Satz statt Feld) Optimistic Record Locking (Page Lock!) Optimistic Record Locking (Page Lock!)

52 Wizards & Builders GmbH Optimierung Client/Server Zugriffsoptimierung von Client/Server unter Microsoft Visual FoxPro

53 Wizards & Builders GmbH Connections In Vorbereitung In Vorbereitung

54 Wizards & Builders GmbH Data Retrieval In Vorbereitung In Vorbereitung

55 Wizards & Builders GmbH Queries und Views In Vorbereitung In Vorbereitung

56 Wizards & Builders GmbH Masken In Vorbereitung In Vorbereitung

57 Wizards & Builders GmbH Einfügen und Löschen In Vorbereitung In Vorbereitung

58 Wizards & Builders GmbH Red Classes Darstellung der Red Classes- Klassenbibliothek für C/S für Microsoft Visual FoxPro

59 Wizards & Builders GmbH Red Classes für C/S Application Manager Application Manager Form Manager Form Manager Toolbar Manager Toolbar Manager Report Manager Report Manager Data Manager Data Manager Remote Views Remote Views Parameterized Views Parameterized Views SQL Pass Through SQL Pass Through Connections Connections

60 Wizards & Builders GmbH Was ist zu bedenken? Parallentwicklung lokal/remote ist leider aufwendig Parallentwicklung lokal/remote ist leider aufwendig Ggf. immer C/S ? (zB SQL Anywhere) Ggf. immer C/S ? (zB SQL Anywhere) Ggf. Nie C/S ? Ggf. Nie C/S ? Optimierungen... Optimierungen... Red Classes kaufen Red Classes kaufen

61 Wizards & Builders GmbH Vielen Dank! Das waren die Themen: Client/Server Client/Server Connections Connections Remote Views Remote Views SQL-Pass-Through SQL-Pass-Through MS SQL-Server MS SQL-Server Unterschiede zu Serverdatenbanken Unterschiede zu Serverdatenbanken Optimierung C/S Optimierung C/S The Red Classes The Red Classes

62 Wizards & Builders GmbH Wenn Fragen bestehen: Wizards & Builders Methodische Software- Entwicklung GmbH Frankfurter Str. 21b 61476 Kronberg Tel.: 06173-950906 Fax: 06173-950907 CIS: 101605,175


Herunterladen ppt "Wizards & Builders GmbH Client/Server-Programmierung Erstellung von Client/Server- Datenbankapplikationen unter Microsoft Visual FoxPro."

Ähnliche Präsentationen


Google-Anzeigen