RE: Probleme nach SQL Server Update
- From: Christian Coppes <ChristianCoppes@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Sat, 29 Aug 2009 01:12:01 -0700
"Michael Schörner" wrote:
Hallo allerseits,
Backend SQL Server 2005 (SQL Server 2k Kompatibilitätsmodus), Frontend
Access 2003 adp.
Seit ich den SQL Server auf meinem Entwicklungsrechner auf den neuesten
Stand gebracht habe (derzeit 9.0.4035), funktioniert die Anwendung an
einigen Stellen nicht mehr wie vorher.
Beispiel: Subform basierend auf einer View, eindeutige Tabelle gesetzt, ist
auf einmal nicht mehr aktualisierbar ("Recordset nicht aktualisierbar").
Beim Kunden läuft die Version 9.0.1399. Und alle Funktionen laufen, wie sie
sollen.
Weiß jemand, ob Access-Projekte und SQL Server 2005 ab einer bestimmten
Version nicht mehr korrekt zusammen spielen? Das wäre der Mega-Gau für mein
Projekt, falls der Kunde seine SQL Server-Version aktualisiert.
Vielen Dank für jeden Hinweis.
Hallo Michael,
auf das gleiche Problem bin ich beim Update von SQL Server 2000 auf SQL
Server 2005 ebenfalls gestoßen (und bei Dir lief es ja im
Kompatibilitötsmodus).
Damit eine View aktualisierbar ist, muß Access einen eindeutigen Index
haben. Den sucht sich Access normalerweise automatisch heraus, i.d.R. der
Primary Key, und zwar beim ersten Verbinden mit der View. Kann es keinen
finden, wirst Du nach einem Feld gefragt, das einen eindeutigen Index
darstellt. Letzteres passiert aber nur, wenn Du die Tabelle/View per ODBC von
Hand verlinkst, bei einer DSN-losen Verbindung nicht. Aber Access bietet die
Möglichkeit, auf eine verlinkte Tabelle einen Index zu setzen. Dabei wird der
Index lediglich lokal erzeugt, auf dem Server ändert sich nichts.
Nähere Infos siehe hier:
http://office.microsoft.com/de-de/access/HA012314391031.aspx
Darüber hinaus muß die View auf dem Server allerdings auch veränderbar sein.
Das kannst Du prüfen, wenn Du die View mit dem SQL Server Management Studio
öffnest und versuchst, einen Datensatz zu ändern.
In der Regel sind Views, die aus mehr als einer Tabelle zusammengesetzt
sind, nicht aktualisierbar. Bei einem Access Projekt kann man dazu dann im
Formular die Eigenschaft "Unique Table" auf diejenige Tabelle der View
setzen, die veränderbar sein soll, die Felder der externen Tabelle können
dann nicht geändert werden.
Auf dem SQL Server hat man die Möglichkeit, der View einen eigenen Trigger
zu verpassen, den "INSTEAD OF"-Trigger. Dieser ersetzt die SQL-Server
Standardmethode, einen Datensatz zu aktualisieren, man hat damit die
Möglichkeit, in einer verlinkten View alle Felder aller beteiligten Tabellen
zu verändern (der Trigger erhält zwei Tabellen vom SQL Server namens
"deleted" und "inserted" und daraus kann man die veränderten Daten
herauslesen und in die jeweiligen Tabellen mit UPDATE/INSERT/DELETE einfügen).
Infos dazu siehe hier:
http://msdn.microsoft.com/de-de/library/ms175521.aspx
Und zuletzt: Vielleicht ist auch einfach der SQL 2000 Kompatibilitätsmodus
nach dem Update abgeschaltet worden?
Gruß
Christian
.
- References:
- Probleme nach SQL Server Update
- From: Michael Schörner
- Probleme nach SQL Server Update
- Prev by Date: Re: ODBC/A97: Connectionstring aendert sich
- Next by Date: in Access nicht vollendetes insert wegen raiserrer SG 11
- Previous by thread: Probleme nach SQL Server Update
- Next by thread: Re: ODBC/A97: Connectionstring aendert sich
- Index(es):
Relevant Pages
|