C
Anders herum wird ein Schuh draus.
Du schreibst was in die DB, was Du dann anzeigst - in einem mit einer Datenmenge (DataSource) verbundenen Objekt, wie z.B. DBGrid, DBEdit etc.
Du nimmst also den Datumswert, den die aus Deinem Kalender gekriegt hast, fügst über ein Insert-Kommando einen neuen DS in Deine Tabelle ein (mit dem Datum als einzig ausgefülltem Wert).
Wenn Deine DataSource automaisch aktualisisert wird, dann erscheint darauf hin die aktualisierte Anzeige in Deinem z.B. DBGrid-Objekt.
Wenn Deine Datasource mehr als einen DS enthält, macht ein PrimaryKey als Identifier Sinn. Du wirst ja mehr als einen DS mit dem gleichen Datum anlegen können (Es sei denn Deine Spalte Datum ist unique). Nenn das Ding ROWID, das ist ein Std-Begriff. Normalerweise ist das eine fortlaufende Nummer (gelegentlich eine NummernBuchstabenkombination). Die Nummer ist einmalig je Tabelle, so daß Du den Datensatz anhand dieser eindeutig identifizieren kannst.
Viele DB-Systeme unterstützen diese Funktion von sich aus.
Z.B.: MS-SQL-SERVER
create Table <<Table>>
(ROWID int identity (1,1) NOT NULL unique,
...
)
Bei Paradox weiß ich nicht. Wenn nicht ist das auch kein Problem. Hole Dir die maximale Nummer von Rowid (select max(ROWID) from TABLE) und zähle diese weiter.
Das geht sogar in einem Kommando
insert into TABlE (ROWID,DATUM)
select MAX(ROWID)+1,<<Wert des Datums>>
from TABLE <- falls Deine DBMS sowas zuläßt. Sonst machst Du das halt in C++.
Um den aktuellen DS anzuzeigen gibt's mehrere Möglichkeiten.
Du kannst die Auswahl einschränken -> select * from TABLE where ROWID = WertROWID (wenn Du den Wert kennst weil Du ihn z.B. in C++ erzeugt hast.)
Du kannst die Abfrage auch mit einer Unterabfrage einschränken
select *
from TABLE
where rowid = (select MAX(ROWID) from TABLE) (wenn Du die erzeugte ROWID nich kennst)
Du kannst Dich in Deiner DataSource zum letzten DS bewegen (Methode Last). Das klappt dann, wenn Dein Select nicht sortiert ist, weil Datensätze immer ans Ende der Tabelle angehängt werden.
usw. usf.
Du kannst auch in Deiner DS den gewünschten DS aktuell setzen (z.B. Methode Locate), wenn Du Deinen DS identifizieren kannst.
Ein Datum reicht dafür meistens nicht aus, weil mehrfach vorkommen kann -> "Ich kann X dumme, lange Post's am Freitag, den 13. 2006 schreiben".
Du kannst auch den Inhalt einer Zelle des aktuellen DS an ein unverbundes Objekt/Variable übergeben.
Bsp.
nVglSz=ADOQuery1->FieldValues["SZWERKSTATT"]; // einfach aus einem meiner Progrämmchen kopiert
Das Beispiel geht einem Query mit bekannten Spalten (zur Entwurfzeit) aus.
Das sollte bei Dir passen.