Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Direkt in die Tabelle schreiben (https://www.delphipraxis.net/17280-direkt-die-tabelle-schreiben.html)

lkz633 2. Mär 2004 15:23


Direkt in die Tabelle schreiben
 
Hallo,

bin mir gerade ein wenig unsicher, deswegen folgende Frage. Ich habe diesen Code:

Delphi-Quellcode:
  query.Close;
  query.SQL.Clear;
  query.SQL.Add('select * XFER_QUEUE where COMPLETED=NULL');
  query.open;
  if query.RecordCount>0 then begin
    query.First;
    while not query.Eof do begin
      //mache irgendwas
      query.Edit;
      query.FieldByName('COMPLETED').AsDateTime:= now;
      query.Post;
    end;
  end;
Schreibe ich damit now dirket in die Tabelle hinein oder nur in das Ergebniss Dataset meiner Abfrage?

Danke und Gruss
lkz633

vanveen@onlinehome.de 2. Mär 2004 15:42

Re: Direkt in die Tabelle schreiben
 
Hallo, lkz633

So müßte es eigentlich gehen ...


Delphi-Quellcode:
  query.Close;
  query.SQL.Clear;
  query.SQL.Add('select * XFER_QUEUE where COMPLETED=NULL');
  query.open;
  if query.RecordCount>0 then begin
    query.First;
    while not query.Eof do begin
      //mache irgendwas
      query.Edit;
      query.FieldByName('COMPLETED').AsDateTime:= now;
      query.Post;
    end;
  end;
[edit=sakura] BBCode zugelassen. Mfg, sakura[/edit]

APP 2. Mär 2004 16:33

Re: Direkt in die Tabelle schreiben
 
Falls Du nicht nur in den ersten Datensatz schreiben möchtest,
sondern in alle die Dein Query liefert, empfehle ich Dir noch:
Code:
 query.Close;
  query.SQL.Clear;
  query.SQL.Add('select * XFER_QUEUE where COMPLETED=NULL');
  query.open;
  if query.RecordCount>0 then begin
    query.First;
    while not query.Eof do begin
      //mache irgendwas
      query.Edit;
      query.FieldByName('COMPLETED').AsDateTime:= now;
      query.Post;
[color=red]     query.Next;[/color]
    end;
  end;

mikhal 3. Mär 2004 07:17

Re: Direkt in die Tabelle schreiben
 
Wie wäre es mit

Delphi-Quellcode:
query.SQL.Add('select * FROM XFER_QUEUE where COMPLETED IS NULL');
statt
Delphi-Quellcode:
query.SQL.Add('select * XFER_QUEUE where COMPLETED=NULL');
Grüße
Mikhal

Robert_G 3. Mär 2004 12:33

Re: Direkt in die Tabelle schreiben
 
Direkt in die Tabelle geht das ganze über ein INSERT oder UPDATE Satement.
Zum Bleistift (für ein UPDATE):
Delphi-Quellcode:
With ADOQuery Do
Begin
  SQL.Text :=
    'UPDATE XFer_Queue t' + #10 +
    'SET   t.Completed = :i_ComplDate' + #10 +
    'WHERE DeinPrimKey = :i_PimKey';
  Prepared := True;
  Parameters.ParamByName('i_PrimKey') := DeinPrimKey;
  Parameters.ParamByName('i_ComplDate').DataType := ftDateTime;
  Parameters.ParamByName('i_ComplDate').Value := now();
  ExecSQL;
End;
Dieses ganze Edit, Post,... -Zeugs ist doch alles andere als direkt...

Sharky 3. Mär 2004 13:00

Re: Direkt in die Tabelle schreiben
 
Hai,

noch eine kleine Anmerkung von mir ;-)

Ich vermeide es immer die Zeit der Workstation zu verwenden. Wenn möglich nehme ich immer die des Datenbank-Servers.

Robert_G 3. Mär 2004 13:06

Re: Direkt in die Tabelle schreiben
 
Gibt es da denn einen SQL-Standard :?:
Ich dachte diese Werte heißen von DB zu DB anders. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 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