daywalker0086 - Mi 04.06.14 08:46
Titel: Zufgriff auf Access Tabelle, ADO; Änderungen nicht übernomme
Moin an alle,
ich habe ein großen Problem mit dem Zugriff auf eine Acces Tabelle über ADO.
Was funktioniert:
ICh habe folgende Komponenten: TADOTable, TDatasource, TDBGrid, TDBNavigator
Habe alle Komponenten miteinander verbunden.
Mein Conection String in meiner ADOTable sieht folgendermaßen aus:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\c.hohmann\Documents\Geraetedb1.mdb;Persist Security Info=False
Die Table ist auf active = true gesetzt und ich bekommen somit schon zur Entwurfszeit den Inhalt meiner Tabelle aus der Datenbank im DBGrid angezeigt.
Soweit super!
Kann auch mit dem Navigator durch die einzelnen Datensätze gehen.
DAS PROBLEM:
Wenn ich im Navigator auf Datensatz hinzufügen gehe, dann macht er mir im DBGRif auch eine neue Zeile in die ich auch was eintragen kann.
Wenn ich dann bestätige oder die Zeile verlassen bleibt es auch im DBGrid stehen, aber es wird nicht in meine Access Datenbank übernommen. Auch über den Befehl:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| begin with ADOTable1 do begin insert; FieldByName('Barcode').Value := '12345'; FieldByName('Prüfschritt').Value := 'Widerstand1'; Post;
end; adotable1.Refresh; end; |
wird zwar das DBGRid gefüllt, wenn ich aber mein Programm schließe und weder öffne sind die Änderungen weg und in der Access DB hat sich nichts geändert.
Ich weis echt nichtmehr woran das jetzt liegen könnte, die Einbindung ging bis hierhin so einfach und dann das.
Es kommt auch keine Fehlermeldung.
Readonly ist überall auf false gestellt.
Wer hat noch eine Idee?
daywalker0086 - Mi 04.06.14 11:07
Nachtrag:
Es liegt an dem ltBatchoptimistic!
wenn ich auf ltOptimistic umschalte kann ich zwar die Daten in meinem DBGrid zur Entwurfszeit nichtmehr sehen, wenn ich aber
mit einem Button dies ausführe:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button10Click(Sender: TObject);
begin adotable1.Open; with ADOTable1 do begin insert; FieldByName('Barcode').Value := '12345'; FieldByName('Prüfschritt').Value := 'Widerstand1'; Post;
end;
adotable1.Refresh; adotable1.Close; end; |
Dann wird der neue Eintrag in die DB übernommen!
Juhu, mich würde trotzdem interessieren was BatchOptimistic macht oder nicht macht. Falls jemand Infos hat...