![]() |
Datenbank: ACCESS • Version: 2003 • Zugriff über: ADO
INSERT Befehl für mehrere Einträge
hallo benutze folgenden befehl um einen Eintrag in eine bereits bestehende Tabelle einzufügen aber es will nicht so recht funktionieren:
Delphi-Quellcode:
ich berechne die Zeit indem ich ersteinmal die Tabelle komplett ausfülle nur will er mir eben dann später die Spalte Arbeitszeit nicht ausfüllen, die bleibt immer leer auch wenn ich folgende befehle verwende der trägt nichts ein:
ADOQuery1.SQL.Text := 'INSERT INTO Tabelle1(Arbeitszeit) VALUE ='+FloatToStr(Zeit);
ExecSql;
Delphi-Quellcode:
hoffe jemand kann mir helfen....
ADOQuery1.SQL.Text := 'INSERT INTO Tabelle1(Arbeitszeit) SELECT Arbeitszeit FROM Tabelle1 WHERE ID = :ID'+FloatToStr(Zeit);
nochmal zur verständnis..der Eintrag existiert bereits sprich spalten wie name usw.. sind schon ausgefüllt nur eben ist Arbeitszeit leer beim Drücken auf einen Button soll eben nur die Zeit da rein kopiert werden. |
Re: INSERT Befehl für mehrere Einträge
Hallo Afax,
sieht so aus, als würdest Du eigentlich ein UPDATE durchführen wollen. Das Insert kann von der DB nicht durchgeführt werden, wenn die ID des Datensatzes schon vorhanden ist. Eigentlich müßte es Fehlermeldungen hageln. Versuch mal mit
SQL-Code:
weiterzukommen.
update Tabelle1 set Arbeitszeit = neuerWert where ID = dieID
Niels |
Re: INSERT Befehl für mehrere Einträge
Wenn der Datensatz schon existiert, dann benutzt Du UPDATE statt INSERT.
Delphi-Quellcode:
Dazu ist es natürlich notwendig, dass Du jeden Datensatz eindeutig identifizieren kannst.
Query.SQL.Text:='UPDATE Tabelle1 SET Arbeitszeit=:Zeit WHERE DeineBedingung';
Query.ParamByName('Zeit').asString:=FloatToStr(Zeit); Query.ExecSQL; Gruß Igotcha |
Re: INSERT Befehl für mehrere Einträge
Danke an euch beide...habe dies nun so gelöst:
Delphi-Quellcode:
funtioniert tadellos..vieln Dank nochmal für euere schnelle Hilfe!!
ADOQuery1.SQL.Text := 'UPDATE Tabelle1 SET Arbeitszeit ='+FloatToStr(Zeit);
ExecSQL; |
Re: INSERT Befehl für mehrere Einträge
Zitat:
Gruß Igotcha |
Re: INSERT Befehl für mehrere Einträge
ja habe ich gerade auch bemerkt als ich mehere Mitarbeiter eingefügt hatte...das möchte ich natürlich nicht.
desweiteren habe ich noch 2 Felder die genau so wie das zeitfeld berechnet werden die ich anfügen möchte aber wenn ich die SQL.Text-Befehle untereinader setze und am Ende Exec.SQL..dann führt er nur immer den letzten SQL.Text-Befehl aus und nicht alle 3 |
Re: INSERT Befehl für mehrere Einträge
Ok, also langsam...
Du braucht eine Möglichkeit, jeden Datensatz eindeutig identifizieren zu können. Z.B. eine ID (autoinc).
Delphi-Quellcode:
Um den Datensatz mit der ID 2 upzudaten machst Du:
ID FELD1 FELD2 FELD3
1 xxxxx 2 xxxxx
Delphi-Quellcode:
Das wars.
UPDATE tabelle SET FELD2=:feld2, FELD3=:feld3 WHERE ID=2
Gruß Igotcha |
Re: INSERT Befehl für mehrere Einträge
habe es jetzt mal so:
Delphi-Quellcode:
und mein Problem hat sich erledigt :D .. Danke für die Hilfe!!
ADOQuery1.SQL.Text:='UPDATE Tabelle1 SET Arbeitszeit=:Zeit WHERE ID= :ID';
ADOQuery1.Parameters.ParamValues['Zeit']:=FloatToStr(Zeit); ADOQuery1.ExecSQL; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz