Mailinglisten-Archive |
Hallo, vielen Dank für die Antwort. Problem durch weiteres Herumprobieren gelöst! siehe unten Ulrich On Wed, 6 Nov 2002 11:59:12 +0100, Wolfgang Hauck <wbh@euta.net> wrote : > Von wo wird die Query abgesetzt? es ist eine "Abfrage" in Access. Letztendlich SELECT in bunter Verpackung. Die Abfrage gibt's in verschiedenen Darstellungen, u.a. auch als SQL-Code (im Microsoft-SQL-Dialekt, myODBC macht dann mySQL-SQL draus). > Sollte das ne Sicht werden? ?! mySQL kann (noch) keine Views (dachte ich zumindest) > Der Fehler kann verschiedene Ursachen haben: > Die Bezeichnung der Verknüpfung stimmt nicht mit der Bezeichnung der mysql > - Tabelle überein... nein, ist nicht der Fall > Es wurden Veränderungen in der Struktur der mysql - Tabelle vorgenommen Also, ursprünglich funktionierte es, dann habe ich heute früh eine bereits vorhandene mySQL-Tabelle person_anrede erweitert (zusätzliche Felder), danach die Access-Verknüpfungen aktualisiert (!) und dann die Abfrage verändert. Die Änderung umfaßte die Hinzunahme der Verknüpfung auf die Tabelle person_anrede, die dort enthaltenen Anrede-Texte waren bisher "hart" in der Abfrage kodiert, ich wollte hier erweiterte Möglichkeiten haben, daher die verknüpfte Tabelle. Nach dieser Änderung trat das beschriebene Fehlverhalten auf. Jetzt habe ich versuchsweise die Tabelle person_anrede wieder rausgenommen, damit funktioniert die Abfrage wieder. Somit liegt es an der zusätzlich verknüpften Tabelle. Ein weiterer Versuch ergab, daß es an der Art der Verknüpfung dieser Tabelle lag; aus einem RIGHT JOIN einen INNER JOIN gemacht und der Fehler tritt nicht mehr auf. (Hurra.) Auch wenn ich den Zusammenhang zwischen der JOIN-Art und der beschriebenen Fehlermeldung nicht verstehe. (Es > "muss" bei jeglicher Strukturveränderung der Originaltabelle[mysql] die > Verknüpfung mit Access neu erstellt werden [keine automatische > Aktualisierung!!!]). habe ich gemacht > ODBC ist eh schon eine brutale Bremse, wenn dann noch x IF - Abfragen in > die Query eingebaut werden (die IMHO eigentlich unnötig sind, da schreib > ich doch gleich nix rein und tausche nicht ein * gegen ein''), wird die > Abfrage uferlos langsam. es sind bisher keine allzugroßen Datenmengen, von daher reicht mir die Performance im Moment. Im übrigen dachte ich, es sei für die Performance gut, wenn ich gerade _nicht_ mittels * _alle_ Datenfelder vom Server zum Client jage, sondern nur die, die ich wirklich brauche?! > Warum baust du dir nicht eine Sicht zusammen (geht auch mit verknüpften > Tabellen) und fragst diese ab. Die Rest - Bedingungen können dann im > Serienbrief angegeben werden. Gleiches gilt für die Auswahl der Felder > (nehme tabelle.*). Es können sogar Beziehungen erstellt werden, allerdings > ohne referenzielle Integrität, Lösch- oder Aktualisierungsweitergabe. Bei > einer Sichterstellung werden diese Beziehungen dann berücksichtigt... > Damit werden auch deine Queries übersichtlicher. Im übrigen kannst du auch > Sichten aus Sichten erstellen. Gerade für Anrede und solche Dinge gibts SET > - und ENUM - Felder, da sparst du dir etliche Verknüpfungen... hört sich alles ganz toll an, aber ich dachte, mySQL kennt noch keine VIEWS? Habe im Moment Vs. 3.23.38 im Einsatz - nicht ganz die aktuellste, aber es gab keinen akuten Bedarf, eine neuere zu installieren. -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive