Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL wird ausgeführt, aber nicht angezeigt? (https://www.delphipraxis.net/9174-sql-wird-ausgefuehrt-aber-nicht-angezeigt.html)

Nalincah 19. Sep 2003 14:52


SQL wird ausgeführt, aber nicht angezeigt?
 
Wenn ich das ein Statement wie "SELECT * from Adressen" aufrufe, macht der das zwar, aber der akualisiert das DBGrid nicht. Das Grid ist mit TradeDS verbunden

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
i:integer;
begin
  if TradeSQL.Lines.Count > 0 then
  begin
    TradeQuery.SQL.Clear;
    for i := 0 to TradeSQL.Lines.Count - 1 do
    begin
      TradeQuery.SQL.Add(TradeSQL.Lines[i]);
    end;
    try
      TradeQuery.ExecSQL;
      TradeDS.DataSet := TradeQuery;
      DBGrid2.Repaint;
    except
      on e:exception do
      ShowMessage('Statement konnte nicht ausgeführt werden'#10#13'Fehler: ' + e.Message);
    end;
  end;
end;

Phoenix 19. Sep 2003 14:55

Re: SQL wird ausgeführt, aber nicht angezeigt?
 
Was ist denn TradeQuery für eine Klasse?

Bei einem TQuery: Ein abhängen der Grid von der Source und hinterher wieder anhängen könnte Abhilfe schaffen. Oder die Source von der Datenquelle ab- und wieder anhängen? Eines von beidem. Liegt daran, daß die Delphi-DB-Kompos ein wenig Buggy sind...

Nalincah 19. Sep 2003 15:08

Re: SQL wird ausgeführt, aber nicht angezeigt?
 
Das ist eine TADOQuery

So gehts nicht:
Delphi-Quellcode:
TradeDS.DataSet := nil;
TradeDS.DataSet := TradeQuery;
Und so auch nicht:
Delphi-Quellcode:
DBGrid2.DataSource := nil;
DBGrid2.DataSource := TradeDS;

Sharky 19. Sep 2003 15:09

Re: SQL wird ausgeführt, aber nicht angezeigt?
 
Ausserdem gibt ExecSQL IMO keine Ergnisse zurück!

Diese Funktion ist also nicht für SELECT Anweisungen geeignet!

MrSpock 19. Sep 2003 23:06

Re: SQL wird ausgeführt, aber nicht angezeigt?
 
Hallo General2003,

da hat Sharky absolut recht, um ein SELECT Statement auszuführen musst du myQuery.Open anstatt myQuery.ExecSQL aufrufen. ExecSQL ist für INSERTs, DELETEs oder UPDATEs.


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