RE: Probleme nach SQL Server Update

Tech-Archive recommends: Speed Up your PC by fixing your registry



"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

.



Relevant Pages

  • Referentielle Integrität abschalten
    ... Hole alle Daten aus einer Tabelle aus SQL Server A ... Vergleiche Daten der Tabelle aus SQL Server A mit der Tabelle aus SQL ... Hat jemand Erfahrung mit der Geschwindigkeit des "Alter Table WITH ...
    (microsoft.public.de.sqlserver)
  • Re: Spalten synchronisieren
    ... (oder auch per SQL) ... Tabellen von zwei unterschiedlichen SQL-Servern synchronisieren? ...
    (microsoft.public.de.sqlserver)
  • Re: ora-01400: =?UTF-8?B?TMO8Y2tlbmhhZnRlIEZlaGxlcm1lbGR1bmcgYmVp?= =?UTF-8?B?IEluc2VydC
    ... Bei Oracle geht das auch nur, so lange die View sich nur auf eine Tabelle ... SQL> create view employees_2 as select * from employees ... SQL> create table t1(id number primary key, ...
    (de.comp.datenbanken.misc)
  • Re: Views rekompilieren
    ... Ich möchte jetzt diese neu erstellte View soszusagen dem SQL ... Wie kann ich SQL Server sagen das er eine einzelne View neu kompilieren ... Der Abfrageplan wird zur abgesetzten Abfrage ...
    (microsoft.public.de.sqlserver)
  • Re: GUIDS / Access und SQL Server / Escape Zeichen
    ... ich habe mal wieder eine ganz spezielle Frage (Access 2007 & SQL ... eine SQL Server Tabelle importieren. ... DoCmd.RunSQL ("INSERT INTO dbo_Timetrack (Track_Person, ...
    (microsoft.public.de.access)