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

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

Embed Size (px)

Citation preview

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

Wizards & Wizards & Builders GmbH Builders GmbH

Client/Server-Client/Server-ProgrammierungProgrammierung

Erstellung von Client/Server-Erstellung von Client/Server-Datenbankapplikationen unterDatenbankapplikationen unter

Microsoft Visual FoxProMicrosoft Visual FoxPro

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

Wizards & Wizards & Builders GmbH Builders GmbH

Diese Schulung dient der Einführung in die Client/Server-Programmierung mit Microsoft

Visual FoxPro und Microsoft SQL Server

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

Wizards & Wizards & Builders GmbH Builders GmbH

ThemenübersichtThemenübersicht

Client/ServerClient/ServerConnections undConnections undRemote ViewsRemote ViewsSQL-Pass-ThroughSQL-Pass-ThroughMS SQL-ServerMS SQL-ServerUnterschiede zu Server-DBUnterschiede zu Server-DBOptimierung C/SOptimierung C/SThe Red ClassesThe Red Classes

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

Wizards & Wizards & Builders GmbH Builders GmbH

Client/ServerClient/Server

Konzepte der Konzepte der Client/Server-Client/Server-

Programmierung unterProgrammierung unterMicrosoft Visual FoxProMicrosoft Visual FoxPro

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

Wizards & Wizards & Builders GmbH Builders GmbH

Definition DatenbankDefinition Datenbank

Logische DatenunabhängigkeitLogische Datenunabhängigkeit Physikalische DatenunabhängigkeitPhysikalische Datenunabhängigkeit Prozedurale SchnittstellenProzedurale Schnittstellen Effiziente Abarbeitung von OperationenEffiziente Abarbeitung von Operationen minimale Datenredundanzminimale Datenredundanz DatenintegritätDatenintegrität konkurrierender Datenzugriffkonkurrierender Datenzugriff DatensicherheitDatensicherheit Datenschutz (Zugriffsschutz)Datenschutz (Zugriffsschutz)

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

Wizards & Wizards & Builders GmbH Builders GmbH

Definition Client/ServerDefinition Client/Server

Client/Server bedeutet:Client/Server bedeutet:

ein Zusammenspiel von ein Zusammenspiel von mehreren Computern, mit der mehreren Computern, mit der Verteilung der Aufgaben Verteilung der Aufgaben zwischen den Maschinenzwischen den Maschinen

Der Server übernimmt Speicher und CPU Der Server übernimmt Speicher und CPU intensive Aufgabenintensive Aufgaben

Der Client übernimmt Auswertungen und Der Client übernimmt Auswertungen und PräsentationPräsentation

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

Wizards & Wizards & Builders GmbH Builders GmbH

Vorteile/Gründe Vorteile/Gründe Client/ServerClient/Server

Geringere Hardwarekosten (statt Mainframe o.ä.)Geringere Hardwarekosten (statt Mainframe o.ä.)

Geringere Entwicklungskosten (dito)Geringere Entwicklungskosten (dito)

Integration mit PC SoftwareIntegration mit PC Software

Skalierbarkeit von Architekturen (statt Multiuser)Skalierbarkeit von Architekturen (statt Multiuser)

Datensicherheit (Mirroring, Backup) Datensicherheit (Mirroring, Backup)

Geringere Belastung des NetzesGeringere Belastung des Netzes

weil es der Chef/Kunde so will ... (Marketing)weil es der Chef/Kunde so will ... (Marketing)

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

Wizards & Wizards & Builders GmbH Builders GmbH

Bewertung der GründeBewertung der Gründe

Der Trend zu Client/Server Der Trend zu Client/Server kommt aus dem Bereich der kommt aus dem Bereich der Mainframes (Downsizing)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 Kundender Wunsch des Kunden

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

Wizards & Wizards & Builders GmbH Builders GmbH

ArchitekturenArchitekturen

PresentationPresentationPresentation

Presentation

ApplicationFunction

ApplicationFunction

ApplicationFunction

Data Management

Data Management

Data Management

Data Management

Data Management

ApplicationFunction

ApplicationFunction

ApplicationFunction

Presentation Presentation

Data Management

Network

DistributedPresentation

DistributedData Mgmt.

RemoteData Mgmt.

DistributedFunction

RemotePresentation

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

Wizards & Wizards & Builders GmbH Builders GmbH

Visual FoxPro und SQL-Visual FoxPro und SQL-ServerServer

Visual FoxPro arbeitet im Client/Server Visual FoxPro arbeitet im Client/Server Bereich besonders gut mit SQL Server Bereich besonders gut mit SQL Server zusammen (Upsizing Wizard) - was aber zusammen (Upsizing Wizard) - was aber nichts über die erreichbare Performance nichts über die erreichbare Performance aussagen soll ...aussagen soll ...

Grundsätzlich sind fast alle hier Grundsätzlich sind fast alle hier vorgestellten Möglichkeiten auch mit vorgestellten Möglichkeiten auch mit anderen ODBC Datenquellen gegeben (in anderen ODBC Datenquellen gegeben (in Abhängigkeit vom jeweiligen Treiber)Abhängigkeit vom jeweiligen Treiber)

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

Wizards & Wizards & Builders GmbH Builders GmbH

ODBC-ArchitekturODBC-Architektur

Application

ODBC driver

Driver managerODBC APIODBC API

ODBC SPIODBC SPI

Network Network interfaceNetwork interface

DatabaseDatabase

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

Wizards & Wizards & Builders GmbH Builders GmbH

Connections und Remote Connections und Remote ViewsViews

Interaktive und Interaktive und programmatische Definition programmatische Definition

von Connections/Remote von Connections/Remote ViewsViews

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

Wizards & Wizards & Builders GmbH Builders GmbH

ODBC-ManagerODBC-Manager

ODBC-Manager ODBC-Manager (Systemsteuerung(Systemsteuerung))

Installation der Installation der ODBC-VerbindungODBC-Verbindung

ggf. Network Libggf. Network Lib ggf. Trusted Conn.ggf. Trusted Conn. ggf. Database ggf. Database

NameName

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

Wizards & Wizards & Builders GmbH Builders GmbH

Interaktive DefinitionInteraktive Definition

Auswahl von DatasourceAuswahl von Datasourceoderoder

Definiton einer ConnectionDefiniton einer Connection Auswahl TabellenAuswahl Tabellen Definition von Remote ViewsDefinition von Remote Views Zusatzeinstellungen für Zusatzeinstellungen für

Remote Views (im Menü)Remote Views (im Menü) Wichtig: Vergabe von Parametern!Wichtig: Vergabe von Parametern!

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

Wizards & Wizards & Builders GmbH Builders GmbH

Auswahl DatasourceAuswahl Datasource

Anlegen / Öffnen Anlegen / Öffnen Datenbank-Datenbank-containercontainer

Auswahl Auswahl DatasourceDatasource

oderoder Definition einer Definition einer

ConnectionConnection

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

Wizards & Wizards & Builders GmbH Builders GmbH

Definition ConnectionDefinition Connection

User/Pwd/User/Pwd/DatabaseDatabase

Aysnchron (?)Aysnchron (?) Endanwender-Endanwender-

Warnungen (?)Warnungen (?) TransaktionenTransaktionen PaketgrößePaketgröße diverse Zeitendiverse Zeiten

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

Wizards & Wizards & Builders GmbH Builders GmbH

Auswahl TabellenAuswahl Tabellen

Übersicht über Übersicht über „Database“„Database“

Join auf dem Join auf dem Server (siehe Server (siehe ODBC-Join)ODBC-Join)

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

Wizards & Wizards & Builders GmbH Builders GmbH

Definition Remote View (1)Definition Remote View (1)

Komplett-Komplett-downloaddownload ohne Unterbrechungohne Unterbrechung

Parameter:Parameter: ??

AbfrageAbfrage VariableVariable PropertyProperty

WildcardsWildcards %% __

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

Wizards & Wizards & Builders GmbH Builders GmbH

Definition Remote View (2)Definition Remote View (2)

PrimärschlüsselPrimärschlüssel Änderbare FelderÄnderbare Felder „„Send SQL-Send SQL-

Update“Update“ SQL-Where:SQL-Where:

Key FieldsKey Fields Key & UpdatableKey & Updatable Key & ModifiedKey & Modified Key & Timestamp (!)Key & Timestamp (!)

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

Wizards & Wizards & Builders GmbH Builders GmbH

Zusatzparameter Remote Zusatzparameter Remote ViewView

Share ConnectionShare Connection No. of Records to Fetch at a timeNo. of Records to Fetch at a time Maximum No. of Records to fetchMaximum No. of Records to fetch Use Memo when character field length >Use Memo when character field length > No. of Records to Batch UpdateNo. of Records to Batch Update Fetch MemoFetch Memo Include Memo fields in Where-ClauseInclude Memo fields in Where-Clause Precompile on Backend ServerPrecompile on Backend Server

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

Wizards & Wizards & Builders GmbH Builders GmbH

Programmatisch AnlegenProgrammatisch Anlegen

CREATE CONNECTIONCREATE CONNECTION DATASOURCE sqlremote userid passwordDATASOURCE sqlremote userid password

CREATE SQL VIEW REMOTECREATE SQL VIEW REMOTE oder CONNECTION <nameofconnection>oder CONNECTION <nameofconnection>

USEUSE AGAINAGAIN (ggf. gleiche Parameter!)(ggf. gleiche Parameter!) NOREQUERY(gleiche Daten)NOREQUERY(gleiche Daten) NODATANODATA (keine Daten, nur Struktur)(keine Daten, nur Struktur)

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

Wizards & Wizards & Builders GmbH Builders GmbH

SQL-PassthroughSQL-Passthrough

Direktzugriff auf SQL-Server-Direktzugriff auf SQL-Server-Datenbanken statt Datenbanken statt

Verwendung von Remote Verwendung von Remote Views inViews in

Microsoft Visual FoxProMicrosoft Visual FoxPro

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

Wizards & Wizards & Builders GmbH Builders GmbH

Unterschiede zwischen Unterschiede zwischen Remote View / SQL-PassThroughRemote View / SQL-PassThrough

Remote View:Remote View: VFP SQL-SelectVFP SQL-Select ControlsourceControlsource Connection-Mgmt.Connection-Mgmt. Default-Update-Default-Update-

InfoInfo Metadaten in DBCMetadaten in DBC Progressive FetchProgressive Fetch

SQL-Passthrough:SQL-Passthrough: Native Server SQLNative Server SQL DDL-ZugriffDDL-Zugriff MultipleMultiple

Result-SetsResult-Sets TransactionsTransactions Non-UpdatableNon-Updatable

Cursorsetprop()Cursorsetprop()

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

Wizards & Wizards & Builders GmbH Builders GmbH

Zugriff mit SQL-PassthroughZugriff mit SQL-Passthrough

Test der Connection (ODBC-Test)Test der Connection (ODBC-Test)

*-- Verbindung herstellen*-- Verbindung herstellen

Handle=SQLConnect(‚data‘, ‘sa‘, ‘pwd‘)Handle=SQLConnect(‚data‘, ‘sa‘, ‘pwd‘)

*-- Ausführen Abfrage*-- Ausführen Abfrage

=SQLExec(Handle, „SQL“, ‚cursor‘)=SQLExec(Handle, „SQL“, ‚cursor‘)

*-- Arbeiten mit View (Update/Revert)*-- Arbeiten mit View (Update/Revert)

=SQLDisconnect( Handle )=SQLDisconnect( Handle )

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

Wizards & Wizards & Builders GmbH Builders GmbH

SQL-Connect / Metadata (1)SQL-Connect / Metadata (1)

SQLCONNECT( )SQLCONNECT( ) SQLSTRINGCONNECT( )SQLSTRINGCONNECT( ) SQLDISCONNECT( )SQLDISCONNECT( )

SQLTABLES( * )SQLTABLES( * ) SQLCOLUMNS( * )SQLCOLUMNS( * )

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

Wizards & Wizards & Builders GmbH Builders GmbH

SQL-Statements (2)SQL-Statements (2)

SQLEXEC( * )SQLEXEC( * ) SQLMORERESULTS( * )SQLMORERESULTS( * ) SQLCANCEL( = )SQLCANCEL( = ) AbbruchAbbruch SQLPREPARE( )SQLPREPARE( ) PrecompilingPrecompiling SQLCOMMIT( )SQLCOMMIT( ) Commit Trans.Commit Trans. SQLROLLBACK( )SQLROLLBACK( ) Cancel Trans.Cancel Trans.

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

Wizards & Wizards & Builders GmbH Builders GmbH

SQL-Statements (3)SQL-Statements (3)

SQLEXEC( Handle, SQLEXEC( Handle, StoredProcedure)StoredProcedure)

SQLEXEC( Handle, Create Proc)SQLEXEC( Handle, Create Proc) myproc as select *, select *, select * / SQLEXECmyproc as select *, select *, select * / SQLEXEC

SQLGETPROP( )SQLGETPROP( ) SQLSETPROP( )SQLSETPROP( ) AERROR( )AERROR( )

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

Wizards & Wizards & Builders GmbH Builders GmbH

ParameterParameter

Aufruf mit Parametern:Aufruf mit Parametern:=SQLExec( Handle, „where = ?cVar“)=SQLExec( Handle, „where = ?cVar“)

=SQLExec( Handle, „{CALL sp_test ()}“)=SQLExec( Handle, „{CALL sp_test ()}“) z.B. 2,4, ?@Result für Create Procedure sp_test z.B. 2,4, ?@Result für Create Procedure sp_test

@m1 int, @m2 int, @result int output as select @m1 int, @m2 int, @result int output as select @m1 * @m2@m1 * @m2

Float (N,F,B) wird zu N konvertiertFloat (N,F,B) wird zu N konvertiert Anzeigebreite 20Anzeigebreite 20 Date, Time wird zu DatetimeDate, Time wird zu Datetime

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

Wizards & Wizards & Builders GmbH Builders GmbH

Joins, Connection DefaultsJoins, Connection Defaults

Outer Join auf Server:Outer Join auf Server:a *= ba *= b

Outer Join auf ODBC:Outer Join auf ODBC:{oj expression}{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 )

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

Wizards & Wizards & Builders GmbH Builders GmbH

Connection PropertiesConnection Properties

ConnectString, DataSource, UserID, PwConnectString, DataSource, UserID, Pw DispLogin, DispWarning, ConnectBusyDispLogin, DispWarning, ConnectBusy Connect/Idle/QueryTimeout, WaitTimeConnect/Idle/QueryTimeout, WaitTime Aynchronous, BatchModeAynchronous, BatchMode Transactions, PacketSizeTransactions, PacketSize

ODBChdbc2, ODBChstmt2 (für FLLs!)ODBChdbc2, ODBChstmt2 (für FLLs!)

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

Wizards & Wizards & Builders GmbH Builders GmbH

TransaktionenTransaktionen

DB/SQLSETPROP( Transaction, n)DB/SQLSETPROP( Transaction, n)

AutomatischAutomatisch n = 1n = 1(Default)(Default) ManuellManuell n = 2n = 2

VFP-Transaktionen getrennt VFP-Transaktionen getrennt davon!davon!

SQL-Passthrough hat nur einen SQL-Passthrough hat nur einen Transaktions-Level!Transaktions-Level!

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

Wizards & Wizards & Builders GmbH Builders GmbH

Asynchrone Ausführung (1)Asynchrone Ausführung (1)

Default: Synchrone Ausführung (Wait)Default: Synchrone Ausführung (Wait) Möglich: Asynchrone Ausführung fürMöglich: Asynchrone Ausführung für

SQLEXEC, SQLMORERESULTSSQLEXEC, SQLMORERESULTS SQLTABLES, SQLCOLUMNSSQLTABLES, SQLCOLUMNS

Abbruch mit SQLCANCEL( )Abbruch mit SQLCANCEL( ) Non-Batch-Mode: Sqlmoreresults()Non-Batch-Mode: Sqlmoreresults() Mischung: Async/Sync-Batch/Non-BatchMischung: Async/Sync-Batch/Non-Batch

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

Wizards & Wizards & Builders GmbH Builders GmbH

Asynchrone Ausführung (2)Asynchrone Ausführung (2)

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

Wizards & Wizards & Builders GmbH Builders GmbH

MS SQL ServerMS SQL Server

Einführung in das Arbeiten Einführung in das Arbeiten mit Microsoft SQL-Servermit Microsoft SQL-Server

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

Wizards & Wizards & Builders GmbH Builders GmbH

VorgeschichteVorgeschichte

Dr. Eppstein und Mark HoffmannDr. Eppstein und Mark Hoffmann SYBASE ab 1987SYBASE ab 1987 Vertrieb durch MicrosoftVertrieb durch Microsoft Übernahme Quellcode als Übernahme Quellcode als

EigenproduktEigenprodukt Weiterentwicklung (Oberfläche, Weiterentwicklung (Oberfläche,

Integration, Kundenwünsche)Integration, Kundenwünsche)

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

Wizards & Wizards & Builders GmbH Builders GmbH

InstallationInstallation

Named Pipes als Protokoll (TCP/IP)Named Pipes als Protokoll (TCP/IP) Physikalischer PfadPhysikalischer Pfad Automatischer Start (nur bei Automatischer Start (nur bei

Server)Server) Zeichensatz und Sortierung Zeichensatz und Sortierung

(einheitlich für Datenbank)(einheitlich für Datenbank) Lokales Systemkonto (statt User)Lokales Systemkonto (statt User) Anlage MASTER.DAT (25 MB)Anlage MASTER.DAT (25 MB)

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

Wizards & Wizards & Builders GmbH Builders GmbH

SQL Enterprise ManagerSQL Enterprise Manager

Registrierung beim Erststart („SA“)Registrierung beim Erststart („SA“) SQL-Service ManagerSQL-Service Manager

SQL-Mail, SQL-ExecutiveSQL-Mail, SQL-Executive

Database DevicesDatabase Devices Backup DevicesBackup Devices DatabasesDatabases Logins (User, Rechte)Logins (User, Rechte)

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

Wizards & Wizards & Builders GmbH Builders GmbH

DevicesDevices

eigentlich „Drive“eigentlich „Drive“ „„Create Now“ oderCreate Now“ oder via Executivevia Executive MirroringMirroring Vergrößern Vergrößern

(Right / Rechte (Right / Rechte beachten)beachten)

Verkleinern NEINVerkleinern NEIN Backup DevicesBackup Devices

Platte, BandlaufwerkPlatte, Bandlaufwerk

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

Wizards & Wizards & Builders GmbH Builders GmbH

DatenbankenDatenbanken

in einem Devicein einem Device Größe änderbarGröße änderbar

max. 7 Terabyte max. 7 Terabyte GesamtgrößeGesamtgröße

Transaction LogTransaction Log anderes Deviceanderes Device ausreichende Größeausreichende Größe

„„Create for Load“Create for Load“ statt mit „0“ statt mit „0“

auffüllenauffüllen

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

Wizards & Wizards & Builders GmbH Builders GmbH

Tabellen / ZugriffsrechteTabellen / Zugriffsrechte

TabellenTabellen Ansichten (SQL)Ansichten (SQL) Stored ProcedureStored Procedure

Transact SQLTransact SQL extended proceduresextended procedures

Regeln Regeln (Feld-/Satz-(Feld-/Satz-Validierung)Validierung)

DefaultwerteDefaultwerte Datentypen (s.o.)Datentypen (s.o.)

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

Wizards & Wizards & Builders GmbH Builders GmbH

Pages / IndizesPages / Indizes

PagesizePagesize 2048 Byte je Page, 2016 für Datensätze2048 Byte je Page, 2016 für Datensätze Pagelocking (ggf. mehrere Sätze gesperrt!)Pagelocking (ggf. mehrere Sätze gesperrt!)

IndizesIndizes CLUSTEREDCLUSTERED vorsortiert, Lesen schnellvorsortiert, Lesen schnell NON-CLUSTEREDNON-CLUSTERED schneller beim Schreibenschneller beim Schreiben Transaction Log Transaction Log ohne „Order by“ wird erster Index verwendetohne „Order by“ wird erster Index verwendet

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

Wizards & Wizards & Builders GmbH Builders GmbH

Server-KonfigurationServer-Konfiguration

Fill FactorFill Factor Füllgröße IndexpagesFüllgröße Indexpages LE Treshold Max.LE Treshold Max. Pagelocks für Pagelocks für

DateisperreDateisperre LE Treshold PercentLE Treshold Percent Dito in ProzentDito in Prozent LocksLocks Anzahl Satzsperren (32 B)Anzahl Satzsperren (32 B) MemoryMemory Speicher (2 Kilobyte)Speicher (2 Kilobyte) Open DatabasesOpen Databases Offene DatenbankenOffene Datenbanken Open ObjectsOpen Objects Offene Objekte (70 Byte)Offene Objekte (70 Byte) User ConnectionsUser Connections Offene Offene

VerbindungenVerbindungen Speicherbedarf höher, bei Überschreitung Probleme!Speicherbedarf höher, bei Überschreitung Probleme!

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

Wizards & Wizards & Builders GmbH Builders GmbH

Unterschiede SQL-Server-Unterschiede SQL-Server-DBDB

Unterschiede von SQL-Server-Unterschiede von SQL-Server-Datenbanken zu Datenbanken Datenbanken zu Datenbanken

in Microsoft Visual FoxProin Microsoft Visual FoxPro

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

Wizards & Wizards & Builders GmbH Builders GmbH

Vorbereitung für UpsizingVorbereitung für Upsizing

Platz auf Harddisk großzügig!Platz auf Harddisk großzügig! ZugriffsrechteZugriffsrechte

Create Table/Default, Database/Select, AdminCreate 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 ByteMemofeld 32 Byte wird zu Page a 2048 Byte

(z.B. 10.000 Memos = 320 KB -> 20 MB )(z.B. 10.000 Memos = 320 KB -> 20 MB ) Alter DatabaseAlter Database

Device-GrößeDevice-Größe Größe Transaction-Log > DatenerstbestandGröße Transaction-Log > Datenerstbestand

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

Wizards & Wizards & Builders GmbH Builders GmbH

Objekt-Mapping (1)Objekt-Mapping (1)

MS Visual MS Visual FoxPro:FoxPro:

DatenbankDatenbank TabelleTabelle FeldFeld IndexIndex DefaultDefault SatzvalidierungSatzvalidierung FeldvalidierungFeldvalidierung Persistente RelationPersistente Relation

MS SQL-Server:MS SQL-Server: DatenbankDatenbank TabelleTabelle FeldFeld IndexIndex DefaultDefault Stored Proc (Upd/Ins)Stored Proc (Upd/Ins) Stored Proc (Upd/Ins)Stored Proc (Upd/Ins) Upd/Ins/Del-Trigger Upd/Ins/Del-Trigger

oder Table oder Table ConstraintsConstraints

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

Wizards & Wizards & Builders GmbH Builders GmbH

Field-Mapping (2)Field-Mapping (2)

MS Visual MS Visual FoxPro:FoxPro:

CharacterCharacter CurrencyCurrency DateDate DatetimeDatetime DoubleDouble FloatFloat GeneralGeneral

MS SQL-Server:MS SQL-Server: CharChar MoneyMoney DatetimeDatetime DatetimeDatetime FloatFloat FloatFloat ImageImage

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

Wizards & Wizards & Builders GmbH Builders GmbH

Field-Mapping (3)Field-Mapping (3)

MS Visual MS Visual FoxPro:FoxPro:

IntegerInteger LogicalLogical MemoMemo Memo BinaryMemo Binary Character BinaryCharacter Binary NumericNumeric

MS SQL-Server:MS SQL-Server: IntInt BitBit TextText ImageImage BinaryBinary FloatFloat

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

Wizards & Wizards & Builders GmbH Builders GmbH

Index-Mapping (4)Index-Mapping (4)

MS Visual MS Visual FoxPro:FoxPro:

PrimaryPrimary CandidateCandidate RegularRegular UniqueUnique

MS SQL-Server:MS SQL-Server: Clustered UniqueClustered Unique UniqueUnique Non-UniqueNon-Unique Non-UniqueNon-Unique

Keine AusdrückeKeine Ausdrücke Kein Asc/DescKein Asc/Desc

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

Wizards & Wizards & Builders GmbH Builders GmbH

Expression Mapping (5 ff.)Expression Mapping (5 ff.)

MS Visual FoxPro: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 keine Punkte bei AND/OR/NOT/NULLAND/OR/NOT/NULL

MS SQL-Server:MS SQL-Server: DATENAME()DATENAME() DATEPART()DATEPART() CONVERT()CONVERT() GETDATE()GETDATE() 0 / 10 / 1

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

Wizards & Wizards & Builders GmbH Builders GmbH

AufräumarbeitenAufräumarbeiten

Nachbesserung Konvertierung:Nachbesserung Konvertierung: Eindeutige Schlüssel nachtragen (Upd)Eindeutige Schlüssel nachtragen (Upd)

Konfiguration von:Konfiguration von: Datenbankzugriffsrechte (sp_adduser)Datenbankzugriffsrechte (sp_adduser) Objektzugriffsrechte Objektzugriffsrechte (GRANT/REVOKE)(GRANT/REVOKE)

Recovering (ggf. Database Dump)Recovering (ggf. Database Dump) Backup SchedulingBackup Scheduling Device MirroringDevice Mirroring

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

Wizards & Wizards & Builders GmbH Builders GmbH

ÜberprüfungenÜ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. andersEvent Order ggf. anders Lostfocus (Satz statt Feld)Lostfocus (Satz statt Feld) Optimistic Record Locking (Page Lock!)Optimistic Record Locking (Page Lock!)

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

Wizards & Wizards & Builders GmbH Builders GmbH

Optimierung Client/ServerOptimierung Client/Server

Zugriffsoptimierung von Zugriffsoptimierung von Client/Server unter Client/Server unter

Microsoft Visual FoxProMicrosoft Visual FoxPro

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

Wizards & Wizards & Builders GmbH Builders GmbH

ConnectionsConnections

In VorbereitungIn Vorbereitung

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

Wizards & Wizards & Builders GmbH Builders GmbH

Data RetrievalData Retrieval

In VorbereitungIn Vorbereitung

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

Wizards & Wizards & Builders GmbH Builders GmbH

Queries und ViewsQueries und Views

In VorbereitungIn Vorbereitung

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

Wizards & Wizards & Builders GmbH Builders GmbH

MaskenMasken

In VorbereitungIn Vorbereitung

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

Wizards & Wizards & Builders GmbH Builders GmbH

Einfügen und LöschenEinfügen und Löschen

In VorbereitungIn Vorbereitung

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

Wizards & Wizards & Builders GmbH Builders GmbH

Red ClassesRed Classes

Darstellung der Red Classes-Darstellung der Red Classes-Klassenbibliothek für C/S für Klassenbibliothek für C/S für

Microsoft Visual FoxProMicrosoft Visual FoxPro

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

Wizards & Wizards & Builders GmbH Builders GmbH

Red Classes für C/SRed Classes für C/S

Application ManagerApplication Manager Form ManagerForm Manager Toolbar ManagerToolbar Manager Report ManagerReport Manager Data ManagerData Manager

Remote ViewsRemote Views Parameterized ViewsParameterized Views SQL Pass ThroughSQL Pass Through ConnectionsConnections

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

Wizards & Wizards & Builders GmbH Builders GmbH

Was ist zu bedenken?Was ist zu bedenken?

Parallentwicklung Parallentwicklung lokal/remote ist lokal/remote ist leider aufwendigleider aufwendig

Ggf. immer C/S ?Ggf. immer C/S ?(zB SQL (zB SQL Anywhere)Anywhere)

Ggf. Nie C/S ?Ggf. Nie C/S ? Optimierungen...Optimierungen... Red Classes Red Classes

kaufenkaufen

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

Wizards & Wizards & Builders GmbH Builders GmbH

Vielen Dank!Vielen Dank!

Das waren die Themen:Das waren die Themen: Client/ServerClient/Server ConnectionsConnections Remote ViewsRemote Views SQL-Pass-ThroughSQL-Pass-Through MS SQL-ServerMS SQL-Server Unterschiede zu Unterschiede zu

ServerdatenbankenServerdatenbanken Optimierung C/SOptimierung C/S The Red ClassesThe Red Classes

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

Wizards & Wizards & Builders GmbH Builders GmbH

Wenn Fragen bestehen:Wenn Fragen bestehen:

Wizards & BuildersWizards & BuildersMethodische Software-Methodische Software-

Entwicklung GmbHEntwicklung GmbH

Frankfurter Str. 21bFrankfurter Str. 21b

61476 Kronberg61476 Kronberg

Tel.: 06173-950906Tel.: 06173-950906

Fax: 06173-950907Fax: 06173-950907

CIS: 101605,175CIS: 101605,175