Client/Server-Programmierung mit Visual FoxPro - dFPUG

Werbung
Client/Server-Programmierung
Erstellung von Client/ServerDatenbankapplikationen unter
Microsoft Visual FoxPro
Wizards &
Builders GmbH
Diese Schulung dient der Einführung in
die Client/Server-Programmierung mit
Microsoft Visual FoxPro und Microsoft
SQL Server
Wizards &
Builders GmbH
Themenübersicht
Client/Server
Connections und
Remote Views
SQL-Pass-Through
MS SQL-Server
Unterschiede zu Server-DB
Optimierung C/S
The Red Classes
Wizards &
Builders GmbH
Client/Server
Konzepte der Client/ServerProgrammierung unter
Microsoft Visual FoxPro
Wizards &
Builders GmbH
Definition Datenbank









Logische Datenunabhängigkeit
Physikalische Datenunabhängigkeit
Prozedurale Schnittstellen
Effiziente Abarbeitung von Operationen
minimale Datenredundanz
Datenintegrität
konkurrierender Datenzugriff
Datensicherheit
Datenschutz (Zugriffsschutz)
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 Client übernimmt Auswertungen und
Präsentation
Wizards &
Builders GmbH
Vorteile/Gründe Client/Server

Geringere Hardwarekosten (statt Mainframe o.ä.)

Geringere Entwicklungskosten (dito)

Integration mit PC Software

Skalierbarkeit von Architekturen (statt Multiuser)

Datensicherheit (Mirroring, Backup)

Geringere Belastung des Netzes

weil es der Chef/Kunde so will ... (Marketing)
Wizards &
Builders GmbH
Bewertung der Gründe
Der Trend zu Client/Server kommt
aus dem Bereich der Mainframes
(Downsizing)
 Gründe für Upsizing:

 Sicherheit der Daten
 Anwendungen in WANs,
 sehr große Datenmengen (Gigabytes)
 der Wunsch des Kunden
Wizards &
Builders GmbH
Architekturen
Distributed
Presentation
Data
Management
Application
Function
Remote
Presentation
Data
Management
Application
Function
Distributed
Function
Data
Management
Application
Function
Remote
Data Mgmt.
Distributed
Data Mgmt.
Data
Management
Data
Management
Application
Function
Application
Function
Data
Management
Application
Function
Presentation
Presentation
Presentation
Presentation
Presentation
Presentation
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 ...
Grundsätzlich sind fast alle hier vorgestellten
Möglichkeiten auch mit anderen ODBC
Datenquellen gegeben (in Abhängigkeit vom
jeweiligen Treiber)
Wizards &
Builders GmbH
ODBC-Architektur
Application
ODBC API
Driver manager
ODBC SPI
ODBC driver
Network interface
Network
Database
Wizards &
Builders GmbH
Connections und Remote Views
Interaktive und programmatische
Definition von Connections/Remote
Views
Wizards &
Builders GmbH
ODBC-Manager





ODBC-Manager
(Systemsteuerung)
Installation der ODBCVerbindung
ggf. Network Lib
ggf. Trusted Conn.
ggf. Database Name
Wizards &
Builders GmbH
Interaktive Definition

Auswahl von Datasource
oder





Definiton einer Connection
Auswahl Tabellen
Definition von Remote Views
Zusatzeinstellungen für
Remote Views (im Menü)
Wichtig: Vergabe von Parametern!
Wizards &
Builders GmbH
Auswahl Datasource



Anlegen / Öffnen
Datenbank-container
Auswahl Datasource
oder
Definition einer
Connection
Wizards &
Builders GmbH
Definition Connection






User/Pwd/Databas
e
Aysnchron (?)
EndanwenderWarnungen (?)
Transaktionen
Paketgröße
diverse Zeiten
Wizards &
Builders GmbH
Auswahl Tabellen


Übersicht über
„Database“
Join auf dem
Server (siehe
ODBC-Join)
Wizards &
Builders GmbH
Definition Remote View (1)

Komplett-download
 ohne Unterbrechung

Parameter:
 ?
 Abfrage
 Variable
 Property

Wildcards
 %
 _
Wizards &
Builders GmbH
Definition Remote View (2)




Primärschlüssel
Änderbare Felder
„Send SQL-Update“
SQL-Where:
 Key Fields
 Key & Updatable
 Key & Modified
 Key & Timestamp (!)
Wizards &
Builders GmbH
Zusatzparameter Remote View








Share Connection
No. of Records to Fetch at a time
Maximum No. of Records to fetch
Use Memo when character field length >
No. of Records to Batch Update
Fetch Memo
Include Memo fields in Where-Clause
Precompile on Backend Server
Wizards &
Builders GmbH
Programmatisch Anlegen

CREATE CONNECTION
 DATASOURCE sqlremote userid password

CREATE SQL VIEW REMOTE
 oder CONNECTION <nameofconnection>

USE
 AGAIN (ggf. gleiche Parameter!)
 NOREQUERY(gleiche Daten)
 NODATA
(keine Daten, nur Struktur)
Wizards &
Builders GmbH
SQL-Passthrough
Direktzugriff auf SQL-ServerDatenbanken statt Verwendung von
Remote Views in
Microsoft Visual FoxPro
Wizards &
Builders GmbH
Unterschiede zwischen
Remote View / SQL-PassThrough
Remote View:
 VFP SQL-Select
 Controlsource
 Connection-Mgmt.
 Default-Update-Info
 Metadaten in DBC
 Progressive Fetch
SQL-Passthrough:
 Native Server SQL
 DDL-Zugriff
 Multiple
Result-Sets
 Transactions
 Non-Updatable
 Cursorsetprop()
Wizards &
Builders GmbH
Zugriff mit SQL-Passthrough

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 )
Wizards &
Builders GmbH
SQL-Connect / Metadata (1)
SQLCONNECT( )
 SQLSTRINGCONNECT( )
 SQLDISCONNECT( )

SQLTABLES( * )
 SQLCOLUMNS( * )

Wizards &
Builders GmbH
SQL-Statements (2)






SQLEXEC( * )
SQLMORERESULTS( * )
SQLCANCEL( = )
SQLPREPARE( )
SQLCOMMIT( )
SQLROLLBACK( )
Abbruch
Precompiling
Commit Trans.
Cancel Trans.
Wizards &
Builders GmbH
SQL-Statements (3)


SQLEXEC( Handle, StoredProcedure)
SQLEXEC( Handle, Create Proc)
 myproc as select *, select *, select * / SQLEXEC



SQLGETPROP( )
SQLSETPROP( )
AERROR( )
Wizards &
Builders GmbH
Parameter

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



Float (N,F,B) wird zu N konvertiert
Anzeigebreite 20
Date, Time wird zu Datetime
Wizards &
Builders GmbH
Joins, Connection Defaults
Outer Join auf Server:
a *= b
 Outer Join auf ODBC:
{oj expression}

 from {oj a left outer join b on a.id = b.id}

SQLSETPROP/SQLGETPROP( 0 )
Wizards &
Builders GmbH
Connection Properties

ConnectString, DataSource, UserID, Pw
DispLogin, DispWarning, ConnectBusy
Connect/Idle/QueryTimeout, WaitTime
Aynchronous, BatchMode
Transactions, PacketSize

ODBChdbc2, ODBChstmt2 (für FLLs!)




Wizards &
Builders GmbH
Transaktionen

DB/SQLSETPROP( Transaction, n)
 Automatisch
 Manuell
n = 1 (Default)
n=2
VFP-Transaktionen getrennt davon!
 SQL-Passthrough hat nur einen
Transaktions-Level!

Wizards &
Builders GmbH
Asynchrone Ausführung (1)


Default: Synchrone Ausführung (Wait)
Möglich: Asynchrone Ausführung für
 SQLEXEC, SQLMORERESULTS
 SQLTABLES, SQLCOLUMNS



Abbruch mit SQLCANCEL( )
Non-Batch-Mode: Sqlmoreresults()
Mischung: Async/Sync-Batch/Non-Batch
Wizards &
Builders GmbH
Asynchrone Ausführung (2)
Wizards &
Builders GmbH
MS SQL Server
Einführung in das Arbeiten mit
Microsoft SQL-Server
Wizards &
Builders GmbH
Vorgeschichte





Dr. Eppstein und Mark Hoffmann
SYBASE ab 1987
Vertrieb durch Microsoft
Übernahme Quellcode als Eigenprodukt
Weiterentwicklung (Oberfläche,
Integration, Kundenwünsche)
Wizards &
Builders GmbH
Installation






Named Pipes als Protokoll (TCP/IP)
Physikalischer Pfad
Automatischer Start (nur bei Server)
Zeichensatz und Sortierung (einheitlich
für Datenbank)
Lokales Systemkonto (statt User)
Anlage MASTER.DAT (25 MB)
Wizards &
Builders GmbH
SQL Enterprise Manager


Registrierung beim Erststart („SA“)
SQL-Service Manager
 SQL-Mail, SQL-Executive




Database Devices
Backup Devices
Databases
Logins (User, Rechte)
Wizards &
Builders GmbH
Devices







eigentlich „Drive“
„Create Now“ oder
via Executive
Mirroring
Vergrößern (Right /
Rechte beachten)
Verkleinern NEIN
Backup Devices
 Platte, Bandlaufwerk
Wizards &
Builders GmbH
Datenbanken


in einem Device
Größe änderbar
 max. 7 Terabyte
Gesamtgröße

Transaction Log
 anderes Device
 ausreichende Größe

„Create for Load“
 statt mit „0“ auffüllen
Wizards &
Builders GmbH
Tabellen / Zugriffsrechte



Tabellen
Ansichten (SQL)
Stored Procedure
 Transact SQL
 extended procedures



Regeln (Feld-/SatzValidierung)
Defaultwerte
Datentypen (s.o.)
Wizards &
Builders GmbH
Pages / Indizes

Pagesize
 2048 Byte je Page, 2016 für Datensätze
 Pagelocking (ggf. mehrere Sätze gesperrt!)

Indizes
 CLUSTERED
 NON-CLUSTERED
vorsortiert, Lesen schnell
schneller beim Schreiben
 Transaction Log
 ohne „Order by“ wird erster Index verwendet
Wizards &
Builders GmbH
Server-Konfiguration








Fill Factor
LE Treshold Max.
Dateisperre
LE Treshold Percent
Locks
Memory
Open Databases
Open Objects
User Connections
Verbindungen
Füllgröße Indexpages
Pagelocks für
Dito in Prozent
Anzahl Satzsperren (32 B)
Speicher (2 Kilobyte)
Offene Datenbanken
Offene Objekte (70 Byte)
Offene
 Speicherbedarf höher, bei Überschreitung
Probleme!
Wizards
&
Builders GmbH
Unterschiede SQL-Server-DB
Unterschiede von SQL-ServerDatenbanken zu Datenbanken in
Microsoft Visual FoxPro
Wizards &
Builders GmbH
Vorbereitung für Upsizing


Platz auf Harddisk großzügig!
Zugriffsrechte
 Create Table/Default, Database/Select, Admin

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 )
 Alter Database

Device-Größe
 Größe Transaction-Log > Datenerstbestand
Wizards &
Builders GmbH
Objekt-Mapping (1)
MS Visual FoxPro:








Datenbank
Tabelle
Feld
Index
Default
Satzvalidierung
Feldvalidierung
Persistente Relation
MS SQL-Server:








Datenbank
Tabelle
Feld
Index
Default
Stored Proc (Upd/Ins)
Stored Proc (Upd/Ins)
Upd/Ins/Del-Trigger oder
Table Constraints
Wizards &
Builders GmbH
Field-Mapping (2)
MS Visual FoxPro:







Character
Currency
Date
Datetime
Double
Float
General
MS SQL-Server:







Char
Money
Datetime
Datetime
Float
Float
Image
Wizards &
Builders GmbH
Field-Mapping (3)
MS Visual FoxPro:






Integer
Logical
Memo
Memo Binary
Character Binary
Numeric
MS SQL-Server:






Int
Bit
Text
Image
Binary
Float
Wizards &
Builders GmbH
Index-Mapping (4)
MS Visual FoxPro:




Primary
Candidate
Regular
Unique
MS SQL-Server:






Clustered Unique
Unique
Non-Unique
Non-Unique
Keine Ausdrücke
Kein Asc/Desc
Wizards &
Builders GmbH
Expression Mapping (5 ff.)
MS Visual FoxPro:

cMonth() usw.
Day(), Hour() usw.
Dtoc() usw.
Date() usw.
.T. / .F.

keine Punkte bei




MS SQL-Server:





DATENAME()
DATEPART()
CONVERT()
GETDATE()
0/1
AND/OR/NOT/NULL
Wizards &
Builders GmbH
Aufräumarbeiten
Nachbesserung Konvertierung:
 Eindeutige Schlüssel nachtragen (Upd)
Konfiguration von:
 Datenbankzugriffsrechte (sp_adduser)
 Objektzugriffsrechte (GRANT/REVOKE)
 Recovering (ggf. Database Dump)
 Backup Scheduling
 Device Mirroring
Wizards &
Builders GmbH
Überprüfungen






Referentielle Integrität / Trigger (Neu!)
Default-Werte (erst nach Insert!)
Field/Table-Validations (Neu!)
Event Order ggf. anders
Lostfocus (Satz statt Feld)
Optimistic Record Locking (Page Lock!)
Wizards &
Builders GmbH
Optimierung Client/Server
Zugriffsoptimierung von
Client/Server unter
Microsoft Visual FoxPro
Wizards &
Builders GmbH
Connections

In Vorbereitung
Wizards &
Builders GmbH
Data Retrieval

In Vorbereitung
Wizards &
Builders GmbH
Queries und Views

In Vorbereitung
Wizards &
Builders GmbH
Masken

In Vorbereitung
Wizards &
Builders GmbH
Einfügen und Löschen

In Vorbereitung
Wizards &
Builders GmbH
Red Classes
Darstellung der Red ClassesKlassenbibliothek für C/S für
Microsoft Visual FoxPro
Wizards &
Builders GmbH
Red Classes für C/S





Application Manager
Form Manager
Toolbar Manager
Report Manager
Data Manager




Remote Views
Parameterized Views
SQL Pass Through
Connections
Wizards &
Builders GmbH
Was ist zu bedenken?





Parallentwicklung
lokal/remote ist leider
aufwendig
Ggf. immer C/S ?
(zB SQL Anywhere)
Ggf. Nie C/S ?
Optimierungen...
Red Classes kaufen
Wizards &
Builders GmbH
Vielen Dank!
Das waren die Themen:
 Client/Server
 Connections
 Remote Views
 SQL-Pass-Through
 MS SQL-Server
 Unterschiede zu
Serverdatenbanken
 Optimierung C/S
 The Red Classes
Wizards &
Builders GmbH
Wenn Fragen bestehen:
Wizards & Builders
Methodische SoftwareEntwicklung GmbH
Frankfurter Str. 21b
61476 Kronberg
Tel.: 06173-950906
Fax: 06173-950907
CIS: 101605,175
Wizards &
Builders GmbH
Herunterladen