Hallo,
in einer Auslegungssoftware muss ich viele externe Daten verarbeiten. Im ersten Schritt habe ich die über CSV-Dateien eingelesen, aber jetzt möchte ich das eleganter über eine DB machen. Zwar kenne ich mich im Webbereich mit SQL-Datenbanken aus, aber noch nicht in Delphi 7. Forderung des Auftraggebers war, dass die Software weiterhin schlank bleibt und der Endanwender auf seinem Rechner nicht noch irgendwelche Treiber oder Datenbank-Server installieren muss. Habe mich jetzt mal etwas mit Access beschäftigt und erste Testanwendungen gemacht. Dazu folgende Fragen:
1) kann man davon ausgehen, dass der ausgewählte Treiber "Microsoft.Jet.OLEDB.4.0" auf jedem Windows-Rechner automatisch vorhanden ist und funktioniert oder kann/muss man das irgendwie abprüfen?
2) über ADOQuery - DataSource - DBGrid bekomme ich eine Verbindung und das DBGrid füllt sich auch schön mit Daten. Jetzt brauche ich die aber nicht sichtbar, sondern nur im Hintergrund zur Weiterverarbeitung. Laut Tutorial scheint dafür TTable zuständig zu sein, was in Delphi7 wohl DBTable heißt (nur das hab ich gefunden). Wenn ich bei Table1.MasterSource die gleiche DataSource wie beim DBGrid auswähle und dann einfach z. B.
Delphi-Quelltext
1: 2: 3: 4:
| ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from docu'); ADOQuery1.Active := TRUE; Label1.Caption := Table1.FieldByName('dcode').AsString; |
angebe, kommt der Fehler "Operation bei geschlossener Datenmenge nicht ausführbar". Wenn ich ein Table1.Open einfüge, will er einen Table1.TableName, wenn ich den angeben, sucht er nach einer Datei docu.db usw. Wie verknüpft man den ADOQuery und DBTable korrekt?
3) eine der Tabellen enthält auch russische Texte, die aber im DBGrid nur als ??? rüberkommen. Gibt es da eine Lösung?
Würde mich sehr über Hilfe freuen...