Entwickler-Ecke

Datenbanken - In Access DB schreiben


boolala - Do 30.12.10 17:52
Titel: In Access DB schreiben
Ich bin gerade daran einen Vokabel-Trainer mit Delphi 2010 zu coden. Ich verwende als Datenbank eine Access-DB.
Mit dem auslesen aus der DB klappt alles soweit.
Jedoch möchte ich auch verschiedene Sachen in die DB schreiben, wie Datum, Zahlen, Text.
Wie mache ich das jeweils (ein paar Codeschnipsel währen vielleicht hilfreich), muss ich alles in String-Werte konvertieren um es in die Access-DB zu schreiben?

Und noch was: Wie kann ich herausfinden ob ein Datum A vor oder nach einem Datum B liegt?

MfG


bummi - Do 30.12.10 20:15

Du legst die benötigten Tabellen mit den gewünschten Feldern(Feldtypen).
Hängst ein Adodataset mit

Quelltext
1:
Select * from Tabelle                    

dran, daran ein Datasource, daran Eingabefelder,Gitter etc.
Per Code Werte einfügen kannst Du z.B. per

Delphi-Quelltext
1:
2:
3:
4:
5:
ADODSTab.append;
ADODSTab.FieldByName('Datum').Value := Date;
ADODSTab.FieldByName('Fließkommazahl').Value := 123.456;
....
ADODSTab.Post;


oder liegen die Probleme wo anders?


boolala - Sa 01.01.11 17:22

Danke schon mal aber so ganz klappt das noch nicht nach meinen Wünschen.
Wenn ich den Code:


Quelltext
1:
2:
3:
ADO_DS_vokabeln.Append;
  ADO_DS_vokabeln.FieldByName('Deutsch').Value := 'Text';
ADO_DS_vokabeln.Post;


anwende schreibt er den String 'Text' in ein neues Feld mit neuer ID.
Ich möchte jedoch ein bestehendes Feld editieren.

Beim auslesen kann man ja mit


Quelltext
1:
ADO_t_vokabeln.Next;                    


das Feld wechseln.

Beim schreiben funktioniert das jedoch nicht.

Hoffe jemand kann weiterhelfen.

MfG


Tankard - Sa 01.01.11 17:28


Delphi-Quelltext
1:
2:
3:
ADO_t_vokabeln.Edit;
// hier nun die felder ändern.
ADO_t_vokabeln.Post; // schreibt die änderungen


boolala - Sa 01.01.11 17:31

Und wie gebe ich die Spalte+Zeile(ID) des Feldes an das ich ändern will?


Tankard - Sa 01.01.11 17:33

mach doch vorher ein


SQL-Anweisung
1:
select * from vokabeln where id=xxx                    


oder schau dir mal den befehl


Delphi-Quelltext
1:
ADO_t_vokabeln.Locate                    


beziehungsweise:


Delphi-Quelltext
1:
ADO_t_vokabeln.Lookup                    


an