Hallo Stephan, > > ich habe eine Frage zu Abfragen unter BASE. > Arbeitsumgebung: > Ich habe eine mySQL-Datenbank und eine damit verbundene BASE-Datenbank. Auf > der mySQL-Datenbank befinden sich zwei miteinander in 1:N-Verbindung > stehenden Tabellen. > 1) Abfrage > Wenn ich nun eine Abfrage über eine Tabelle erstelle, dann kann ich Inhalte > der Datensätze anpassen, wenn ich das Primärschlüsselfeld in die Auswahl > einbeziehe. Ansonsten nur schreibgeschützte Anzeige der Ergebnistabelle. > Wenn ich dagegen die Abfrage über 2 Tabellen erstelle, erhalte ich nur > schreibgeschütze Ergebnistabellen, egal, welche Primär- oder > Fremdschlüsselfelder ich hinzufüge oder weglasse. Es müßte doch möglich > sein, eine Abfrage über mehrere Tabellen zu erstelen und dann in der > Ergebnistabelle Dateneingaben zu ermöglichen. Eine Einschränkung kann > später im Formular immer noch erfolgen.
Ich stelle mir das für den allgemeinen Programmiervorgang sehr schwierig vor. Dies liegt vor allem daran, dass Base nicht den Relationenentwurf der MySQL-Datenbank erstellen kann (und vermutlich auch nicht ausliest). Angenommen ich würde in einer Datenbank Bücher verwalten. Tabelle 1: Buch; Tabelle 2: Autor. In der Tabelle Buch steht eine autorID, damit ich nicht so viele Autoren immer neu eintragen muss. Bei der Abfrage koppele ich beides miteinander. Jetzt möchte ich einen neuen Autor zuweisen. Base muss jetzt wissen: zuerst den Autor abspeichern, dann die neue ID auslesen, dann die neue ID als autorID in die andere Tabelle eintragen. Woher soll Base das wissen. Nur dann ist die Abfrage wieder stimmig. Müsste Base also wissen, in welcher Reihenfolge abgespeichert werden kann - und das ohne einen Relationenentwurf, denn der funktioniert meines Wissens mit MySQL auf Base (noch) nicht. > 2) Abfrage und NOW() als Kriterium > Ich habe festgestellt, dass ich in einer Abfrage mit einem Datumsfeld die > Funktion NOW() für das aktuelle Datum einsetzen kann. Gibt es auch eine > Möglichkeit, eine Art Zeitfenster zu erstellen, wie ZWISCHEN NOW()-10 UND > NOW() +10? NOW() gibt das Datum und die genaue Uhrzeit wieder. Da das Ganze als Zahlenreihenfolge verwaltet wird kann auch damit gerechnet werden - nur etwas gewöhnungsbedürftig. Aber vor allem verschwindet die Formatierung als Datum und Uhrzeit, stattdessen sind nur noch Zahlen vorhanden: 20080513130312 bedeutet dann 13.5.2008 um 13 Uhr 3 Minuten und 12 Sekunden. Wird hier z.B. + 10000 gesetzt, so wird aus 13 Uhr 14 Uhr. Ich nehme an, dass Du stattdessen DATE(NOW()) verwenden möchtest und dann DATE_ADD(DATE(NOW()), INTERVAL 10 DAY) - Dies entspricht einem Datum, dass 10 Tage in der Zukunft liegt. Mit -10 gehst Du 10 Tage in die Vergangenheit. Zu Details siehe http://dev.mysql.com/doc/refman/5.1/de/ Gruß Robert --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
