Iwie führt das hier in die falsche Richtung. Aber trotzdem sag ich kurz noch dazu, das größte Problem von lazarus ist, das es keine eigene Hilfe besitzt.
@KHH:
Verstehe die Intention deiner Aussage nicht aber gut.
Zum Thema:
Folgend sind alle Schritte nochmal aufgeführt, die ich getätigt habe, um Abfragen erfolgreich durchführen zu können.
In den Systemsteuerungen --> Verwaltung --> Datenquellen (
ODBC): dort eine "Benutzer DSN" hinzugefügt mit dem Microsoft
Access Treiber (.mdb)
- ODBCConnection1
- SQLTransaction1
- Datasource1
- SQLQuery1
- DBGrid1
auf die Form gezogen.
Dann folgendes ausgeführt:
- Eigenschaft von ODBCConnection1.Transaction auf die SQLTransaction1 setzen
- Eigenschaft von SQLQuery1.Database auf ODBCConnection1 setzen
- Eigenschaft von Datasource1.Dataset auf SQLQuery1 setzen
- Eigenschaft von DBGrid1.Datasource auf Datasource1 setzen
- Eigenschaft von SQLQuery1.SQL ein
SQL-Kommando eintragen (Bsp. Select * From MEINE_TAB)
Code sieht dann wie folgt aus:
Delphi-Quellcode:
{onFormCreate}
ODBCConnection1.DatabaseName:='test1'; //Benutzer DSN Name
ODBCConnection1.Connected:=true;
SQLQuery1.UsePrimaryKeyAsKey:=false;
SQLQuery1.Active:=true; //erster String wird direkt ausgeführt
{onButtonClick}
SQLQuery1.Active:=false;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT Bezeichnung FROM Entgeltdatei_SIA');
SQLQuery1.Active:=true;
{onFormClose}
ODBCConnection1.Connected:=false;
Im onButtonClick habe ich rumprobiert, Daten zu manipulieren.
Bspw. so:
Delphi-Quellcode:
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('Update Entgeltdatei_SIA Set Bezeichnung='+QuotedStr('TEST')+' Where Bezeichnung='+QuotedStr('Unfrei'));
SQLQuery1.ExecSQL;
SQLQuery1.ApplyUpdates;
SQLTransaction1.Commit;
oder so:
Delphi-Quellcode:
SQLQuery1.Close;
ODBCConnection1.ExecuteDirect'Update Entgeltdatei_SIA Set Bezeichnung='+QuotedStr('TEST')+' Where Bezeichnung='+QuotedStr('Unfrei'));
SQLQuery1.ApplyUpdates;
SQLTransaction1.Commit;
Hat alles nichts genützt.