AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi INSERT Befehl für mehrere Einträge
Thema durchsuchen
Ansicht
Themen-Optionen

INSERT Befehl für mehrere Einträge

Ein Thema von Avax2k · begonnen am 29. Nov 2005 · letzter Beitrag vom 29. Nov 2005
Antwort Antwort
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#1

INSERT Befehl für mehrere Einträge

  Alt 29. Nov 2005, 13:23
Datenbank: ACCESS • Version: 2003 • Zugriff über: ADO
hallo benutze folgenden befehl um einen Eintrag in eine bereits bestehende Tabelle einzufügen aber es will nicht so recht funktionieren:

Delphi-Quellcode:
ADOQuery1.SQL.Text := 'INSERT INTO Tabelle1(Arbeitszeit) VALUE ='+FloatToStr(Zeit);
ExecSql;
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) SELECT Arbeitszeit FROM Tabelle1 WHERE ID = :ID'+FloatToStr(Zeit); hoffe jemand kann mir helfen....

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.
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#2

Re: INSERT Befehl für mehrere Einträge

  Alt 29. Nov 2005, 13:28
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

update Tabelle1 set Arbeitszeit = neuerWert where ID = dieID weiterzukommen.

Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#3

Re: INSERT Befehl für mehrere Einträge

  Alt 29. Nov 2005, 13:30
Wenn der Datensatz schon existiert, dann benutzt Du UPDATE statt INSERT.

Delphi-Quellcode:
Query.SQL.Text:='UPDATE Tabelle1 SET Arbeitszeit=:Zeit WHERE DeineBedingung';
Query.ParamByName('Zeit').asString:=FloatToStr(Zeit);
Query.ExecSQL;
Dazu ist es natürlich notwendig, dass Du jeden Datensatz eindeutig identifizieren kannst.

Gruß Igotcha
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#4

Re: INSERT Befehl für mehrere Einträge

  Alt 29. Nov 2005, 15:43
Danke an euch beide...habe dies nun so gelöst:

Delphi-Quellcode:
ADOQuery1.SQL.Text := 'UPDATE Tabelle1 SET Arbeitszeit ='+FloatToStr(Zeit);
ExecSQL;
funtioniert tadellos..vieln Dank nochmal für euere schnelle Hilfe!!
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#5

Re: INSERT Befehl für mehrere Einträge

  Alt 29. Nov 2005, 15:50
Zitat von Avax2k:
Danke an euch beide...habe dies nun so gelöst:

Delphi-Quellcode:
ADOQuery1.SQL.Text := 'UPDATE Tabelle1 SET Arbeitszeit ='+FloatToStr(Zeit);
ExecSQL;
funtioniert tadellos..vieln Dank nochmal für euere schnelle Hilfe!!
Dein Statement gilt dann aber für alle Datensätze - sprich in jedem Datensatz steht anschließend die gleich Zeit drin. Möchtest Du das?

Gruß Igotcha
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#6

Re: INSERT Befehl für mehrere Einträge

  Alt 29. Nov 2005, 16:02
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
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#7

Re: INSERT Befehl für mehrere Einträge

  Alt 29. Nov 2005, 16:06
Ok, also langsam...

Du braucht eine Möglichkeit, jeden Datensatz eindeutig identifizieren zu können. Z.B. eine ID (autoinc).

Delphi-Quellcode:
ID FELD1 FELD2 FELD3
1 xxxxx
2 xxxxx
Um den Datensatz mit der ID 2 upzudaten machst Du:

UPDATE tabelle SET FELD2=:feld2, FELD3=:feld3 WHERE ID=2 Das wars.

Gruß Igotcha
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#8

Re: INSERT Befehl für mehrere Einträge

  Alt 29. Nov 2005, 16:08
habe es jetzt mal so:

Delphi-Quellcode:
ADOQuery1.SQL.Text:='UPDATE Tabelle1 SET Arbeitszeit=:Zeit WHERE ID= :ID';
ADOQuery1.Parameters.ParamValues['Zeit']:=FloatToStr(Zeit);
ADOQuery1.ExecSQL;
und mein Problem hat sich erledigt .. Danke für die Hilfe!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz