Member
Beiträge: 19
| hallo zusammen,
ich bin vor kurzer zeit auf ein problem gestoßen das absolut unlogisch ist und
sich imho nicht erklären lässt. es geht um folgendes:
ich entwickle seit mehreren jahren eine access 2016 datenbank mit einem
sql server 2012 als backend. diese datenbank gibt es in 3 versionen:
entwicklung, test und produktiv. im endeffekt unterscheiden diese sich 3 nur in
den odbc-verknüpften tabellen (server-name ist anders) -der rest ist absolut identisch.
ich programmiere mit der entwicklerversion und wenn diese soweit ist, kopiere ich
diese und daraus wird dann die test und produktivversion, wobei intern besagte
odbc-verknüpfungen umgebogen werden. das ganze läuft seit ca. 9 jahren perfekt.
die access-db bzw. das gui der datenbank ist auch nicht sonderlich groß, die
access datei ist ca. 22bg groß. nun das problem:
nachdem ich eine neue produktivversion gemacht hatte, hatte ich in der
entwicklerversion ein formular geöffnet, in dem über ein endlosformular tabellenartig
mehrere infos angezeigt wurden. das ging auf einmal nicht mehr und es erschien
in allen feldern nur noch "#Name". nach einigem testen kam raus, das es ein odbc-problem
war. wenn ich die odbc-verknüpfte tabelle links im access menü direkt öffnete,
kam die fehlermeldung "ODBC-Aufruf fehlgeschlagen". aber in der produktivversion ging
es. habe dann die sql-server db der produktivversion auf die entwicklerversion
kopiert, um identische tabelleninhalte in beiden versionen zu haben. danach ging
es in der entwicklerversion trotzdem nicht. das komische: ich habe dann in meiner
versionshistorie alte entwicklerversionen herausgesucht die teilweise monate alt
waren und seither nicht angefasst wurden. in diesen versionen ging es auf einmal
auch nicht mehr. nach ewigem suchen habe ich dann was probiert, das die lösung
brachte, aber das ist genauso unverständlich: der betreffenden odbc-verknüpften
tabelle liegt eine sql server view zugrunde, welche die daten aus mehreren tabellen
zusammenträgt. bei einer der beteidigten tabellen verwende ich "SELECT a.*" für
den inhalt von tabelle a. diese hat 83 felder, von denen ich aber nur 12 benötige.
habe deshalb das "SELECT a.*" in "SELECT a.feld1, a.feld2..." geändert und nach
aktualisierung der odbc-verknüpfung lief es auch in der entwicklerversion! und
jetzt kommt das verrückte: ich wollte testen, ob villeicht ein neuerer odbc-treiber
das problem lösen würde und wollte deshalb das problem wiederherstellen und änderte
das ganze in der view wieder auf "SELECT a.*". und was passierte: es lief trotzdem !
wie ist dieses verhalten zu erklären? das kann doch nicht sein! das in der zeit
jemand am sql server was gemacht hat kann ich zu 99.9% ausschließen. kann es sein,
das access metainfos jeder geöffneten datenbank irgendwo abspeichert und diese
info "kaputt ging"? und nach dem aktualisieren der odbc-verknüpfung war er dann
gezwungen seine eigene info zu updaten? ich weiß einfach nicht wie ich mir diese
verhalten erklären soll. kann mir jeman von euch helfen und kennt das problem?
vielen dank
sven
p.s. ich hatte so eine art problem schon einmal hier geschieldert. dabei lief
eine sql-abfrage mit besagten "SELECT *" bei allen usern nur bei einem nicht.
nach änderung in aufzählungsform der felder ging es dann auch bei dem user. |