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

Post on 05-Apr-2015

109 views 3 download

Transcript of MSDE Programmierung Tilo Böttcher, Technology Specialist tiloboet@microsoft.com Microsoft GmbH.

MSDE Programmierung

Tilo Böttcher, Technology Specialisttiloboet@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

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

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

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

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

AccessAccess

JetJet

SQL ServerSQL Server

ODBCODBC

AccessAccess

SQL ServerSQL Server

OLEDBOLEDB

Native OLEDB Datenschicht

Access 97 Access 2000Access 2000

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

Integrierte Entwicklungswerkzeuge

Create/Drop databaseTabellenBeziehungenViewsStored ProceduresTrigger

Access Entwicklungsumgebung

FormulareBerichteWizardsVisual Basic® UmgebungNeue Client/Server Eigenschaften

Row LimitServer Filter

Access 2000 Entwicklungstools

DemoAccess 2000 Development Tools

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

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

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 ~)

Abfragen, Sichten, undGespeicherte Prozeduren

SichtenSELECT Abfragenkein Order Bykeine Parameter

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

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

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'

Programmierumgebung

MDBVBA

ADPClient - VBAServer - TSQL

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

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

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

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

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

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

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

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

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

Weniger Funktionen

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

MSDE Entwicklung

DemoAufbau und Deployment einer MSDE Lösung

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

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  

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

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.