MSDE Programmierung Tilo Böttcher, Technology Specialist [email protected] Microsoft GmbH.

33
MSDE Programmierung Tilo Böttcher, Technology Specialist [email protected] Microsoft GmbH

Transcript of MSDE Programmierung Tilo Böttcher, Technology Specialist [email protected] Microsoft GmbH.

Page 1: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

MSDE Programmierung

Tilo Böttcher, Technology [email protected]

Microsoft GmbH

Page 2: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Agenda

Access 2000Client/server EntwicklungNative SQL Server Integration

Erstellung von Datenprojekten (*.adp)Unterschiede zu MDBsTipps and Tricks

Optimierung der Client/Server PerformanceGenerelle PerformancefestlegungenClient/Server Performance Tipps

Page 3: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Agenda

Access 2000Client/server EntwicklungNative SQL Server Integration

Erstellung von Datenprojekten (*.adp)Unterschiede zu MDBsTipps and Tricks

Optimierung der Client/Server PerformanceGenerelle PerformancefestlegungenClient/Server Performance Tipps

Page 4: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

MDB: Datei/ServerJet 4.0Datenbankobjekte (Tabellen, Abfragen etc.)Programmobjekte (Formulare, Berichte etc.)

ADP: Client/ServerADP (SQL Server 6.5 und 7.0, MSDE 1.0)Programmobjekte (Formulare, Berichte etc.)SQL Server Connection

Neu!

Unterschiedliche Dateiformate

Page 5: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Datei/Server vs. Client/Server

ClientClient ServerServer

NetzwerkNetzwerkAccessAccess .MDB .MDB DateiDatei

ClientClient ServerServer

NetzwerkNetzwerkAccessAccessSQL SQL

ServerServer

.MDF Datei.MDF Datei

JetJetDatei/Datei/ServerServer

Client/Client/ServerServer OLEDBOLEDB

Page 6: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Access Datenprojekte (.ADP)

Access 2000 Projekt SQL Server Datenbank

OLE DB

Verbindung des Access Projekts mit der SQL Datenbank

Datenbankobjekte aus der SQL

Datenbank

Datenbankobjekte im Access

Projekt gespeichert

Page 7: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

AccessAccess

JetJet

SQL ServerSQL Server

ODBCODBC

AccessAccess

SQL ServerSQL Server

OLEDBOLEDB

Native OLEDB Datenschicht

Access 97 Access 2000Access 2000

Page 8: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

OLEDB DatenschichtSkalierbarkeit und Performance

Snapshot CursorJede Abfrage kommt nur einmal auf den ServerJet/ODBC benutzt key-set Cursors

• Hit 1: Primärschlüssel auslesen• Hits 2-N: Stapelweises Auslesen der Datensatzreihen

Server-side Query ProcessorMinimierung des Datenverkehrs über das Netzwerk

Natives Interface zum SQL Server

Page 9: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Integrierte Entwicklungswerkzeuge

Create/Drop databaseTabellenBeziehungenViewsStored ProceduresTrigger

Page 10: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Access Entwicklungsumgebung

FormulareBerichteWizardsVisual Basic® UmgebungNeue Client/Server Eigenschaften

Row LimitServer Filter

Page 11: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Access 2000 Entwicklungstools

DemoAccess 2000 Development Tools

Page 12: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Agenda

Access 2000Client/server EntwicklungNative SQL Server Integration

Erstellung von Datenprojekten (*.adp)Unterschiede zu MDBsTipps and Tricks

Optimierung der Client/Server PerformanceGenerelle PerformancefestlegungenClient/Server Performance Tipps

Page 13: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Datentypen

Jet SQL

Text varchar, nvarchar, char, nchar

Memo text, ntext

AutoNumber Identity Columns

Currency money, smallmoney

Date/Time datetime, smalldatetime

Yes/No bit

OLE Object image

Hyperlink <kein Äquivalent>

Long Integer int

Integer smallint

Double, Single float, real

Page 14: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Tabellen und Beziehungen

TriggerDaten Update, Einfügen und Löschen EventsNur auf dem SQL Server

Kaskadierte Update- und LöschvorgängeJet-Engine: native UnterstützungSQL Server: unter Benutzung von Trigger

EinschränkungenJet hat Validierungsschema für Tabellen und Spalten(eine per ~)SQL Server hate Tabellenbeschränkungen (mehrere per ~)

Page 15: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Abfragen, Sichten, undGespeicherte Prozeduren

SichtenSELECT Abfragenkein Order Bykeine Parameter

Gespeicherte ProzedurenSELECT und AktionsabfragenTSQL Flußkontrolle (IF, WHILE, etc.)Keine nested ~

Page 16: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Parameter

Explizite ParameterParameter direkt mit einer Abfrage verbindenBei Jet und SQL Server möglich

Implizite ParameterJet: Unbekannter Bezeichner = ParameterSQL Server: Unbekannter Bezeichner = Fehler

NamenskonventionJet: läßt lange Namen zuSQL: keine Leerzeichen oder Spezialzeichen

Page 17: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

SQL Syntax

Jet SQL

Zeichenketten "STRING" 'STRING'Datum #01.05.2000# '01.05.2000'Wildcard (mehrere)

LIKE "a*" LIKE 'a%'

Wildcard (ein Zeichen)

LIKE "a?" LIKE 'a_'

Wildcard (Negation/Nicht)

J[!i]m J[ i]m

Wildcard (Zahl) # [0-9]

Logisch/Bit0/-1, True/False, Yes/No

0/1/NULL

Abtrennung/Verbindung

"J" & "im" 'J' + 'im'

Page 18: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Programmierumgebung

MDBVBA

ADPClient - VBAServer - TSQL

Page 19: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Update von Daten

Definition eines Primärschlüssels ist VoraussetzungUm einen Join zu aktualisieren müssen

die Unikat TabellenPrimärschlüssel der Unikat Tabellen bekannt sein

Was ist eine unikate Tabelle?1-n Tabelle in einem JoinTabelle, deren Primärschlüssel eine Reihe im Result-Set eindeutig bestimmt

Es lassen sich nur Unique Tables aktualisieren

Page 20: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Resynchronisation von Reihen

Nach einem Update resynchronisiert Access automatisch die Reihe um

Serverseitige Ausdrücke undAktualisierungen eines Join Feldes bestimmen zu können

Primärschlüssel der Unique Table wird benötigtSichten

Projeziert Primärschlüssel der Unique Table

Stored proceduresMüssen ein benutzerspezifisches resync-Kommando unterstützen

Page 21: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Update über Tabellen

Alle Updates werde in Tabellen vorgenommenRechte für das Update müssen vorhanden sein

Update RechteSelect (nach WHERE Bedingungen)

Sicherheit von ViewsZusicherung von Update Rechten auf eine Tabelle

• Trigger um nicht autorisierte zu blocken nutzen

Zusichern eines Select auf die gesamte TabelleSelect auf die Primärschlüssel und timestamp field zusichern

Page 22: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Server Filter in Formularen

Neue Eigenschaft in ADP DateienKein Datensatzzugriff bei Öffnen des FormularsBenutzer können Filter in Formularen definierenFilter werden auf den Server in einer WHERE Bedingung übertragenGefilterte Datensätze werden an den Client zurückgegeben

Page 23: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Vermeidung von Zugriffsverzögerungen

Für beste Performance keine großen Text- oder Bild-Felder zurückgeben

Anzeige nur wen angefordertTrick: Unterformular benutzen

• Hauptformular zeigt nicht behindernde Daten an• Unterformular zeigt größere Datenausschnitte an• Es werden nur Daten zurückgegeben, die

im Formular erscheinen sollen

Page 24: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Migration von MDB nach ADP (DAO nach ADO :-))

Voraussetzungen im letzten TechTalk (auch Access 97 Migration Wizard)Access 2000 Upsizing Assistent

TabellenAbfragen (nur ADP)

MDB mit verbundenen Tabellen vs. ADPVerbundene Tabellen: einfachste IntegrationADP: beste Skalierbarkeit und Performance

Data Transformation Services

Page 25: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Agenda

Access 2000Client/server EntwicklungNative SQL Server Integration

Ersatellung von Datenprojekten (*.adp)Unterschiede zu MDBsTipps and Tricks

Optimierung der Client/Server PerformanceGenerelle PerformancefestlegungenClient/Server Performance Tipps

Page 26: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Optimierung der Leistung

Allgemeine RegelnRAM, RAM, RAM, Prozessor, Plattenplatz

Oft ist das Netzwerk der FlaschenhalsVerringern der zurückgegebenen DatenreihenVerringern der Spalten (sinnvolle Auswahl mit WHERE)

Weniger Funktionen integrierenServer Skalierbarkeit

Minimieren von Round Trips vom Server

Page 27: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Weniger Datenbewegung

Weniger Daten in Formularen anfordernWHERE Bedingungen nutzen!Text und Bildfelder nur bei Bedarf nutzen/anzeigenGroße ComboBocen vermeiden (alle Städte von Deutschland )Statische Daten lokal cachen

• Vorsicht vor nicht aktuellen Daten!

Probleme mit verbundenen TabellenHeterogene JoinsVermeidung benutzerdefinierter Funktionen

• Stored Procedures benutzen

Page 28: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Weniger Funktionen

In ADO CodeRead only ist schnellerForward only ist schnellerWiederverwendung von Connections ist schneller

Page 29: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

MSDE Entwicklung

DemoAufbau und Deployment einer MSDE Lösung

Page 30: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

MSDNwichtige Quellen für Entwickler

MSDN Programm

Abonnement Library, Professional, Universal (European Pack(1)) auf CD, DVD oder Web verfügbar

Online Informationen

MSDN Online, MSDN Flash

Mitgliederprogramme

MSDN Business Connection, MSDN User Groups

Publikationen MS Journal, MSDN NewsTraining, Veranstaltungen und Kongresse

MSDN Training, PDC, TechEd, TechTalk

Page 31: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

Informationen von Microsoft Press

http://www.microsoft.com/germany/mspress

Datenbankprogrammierung mit Visual Basic 6Autor: Walter Doberenz, Thomas KowalskiISBN: 3-86063-485-2Umfang: 633 SeitenPreis: 79,00 DM

ADO-Programmierung

Autor: David Sceppa

ISBN: 3-86063-618-9

Umfang: 384 Seiten

Preis: 79,00 DM  

Access 2000 Programmierung

Autor: Doberenz/Kowalski

ISBN: 3-86063-471-2

Umfang: 924 Seiten

Preis: 98,00 DM  

VB 6 Training Original MCSD Training

Autor: MS

ISBN: 3-86063-905-6/297-3Preis: 98,00/119,00 DM  

Page 32: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

http://www.microsoft.com/germany/msdn/techtalk

http://www.microsoft.com/datahttp://msdn.microsoft.com/libraryhttp://www.microsoft.com/AccessDev/

http://www.vba-magazin.de/http://www.basicworld.com/

NewsgroupsServer msnews.microsoft.commicrosoft.public.de.germany.entwickler.techtalk

Links und Newsgroups

Page 33: MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.2000 Microsoft Corporation. All rights reserved. Companies, names, and/or data used in screens and sample output are fictitious, unless otherwise noted.Microsoft, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners.