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]

Antwort per Email an