Download - MSDE Programmierung Tilo Böttcher, Technology Specialist [email protected] 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.