Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Frage zu AdoDataset. Commandtext (https://www.delphipraxis.net/17260-frage-zu-adodataset-commandtext.html)

Biohazard 2. Mär 2004 08:03


Frage zu AdoDataset. Commandtext
 
Hallo,

hab da mal eine kleine Frage:

Ist es eigentlich möglich auf Commandtext von ADODataset genauso zuzugreifen, wie das bei SQL von TQuery geht.

D.H. zeilenweise darauf zuzugreifen. So z.B.:
Delphi-Quellcode:
query.sql.strings[1]:= sqlstring;
query.sql.strings[2]:= sqlstring;
query.sql.strings[3]:= sqlstring;
Da man ja in dem Commandtext-Editor von ADODataset ja auch Zeilenumbrüche machen kann, müsste das doch auch irgendwie gehen.

[edit=sakura] Leerzeichen in Titel gedrückt. Mfg, sakura[/edit]

r_kerber 2. Mär 2004 08:17

Re: Frage zu AdoDataset.Commandtext
 
Hallo Biohazard,

muß das nicht
Delphi-Quellcode:
query.sql.add (sqlstring);
query.sql.add (sqlstring);
query.sql.add (sqlstring);
heißen?

MarcoWarm 2. Mär 2004 08:42

Re: Frage zu AdoDataset. Commandtext
 
Hi,

ein CommandText ist immer ein String - der kann natürlich auch Zeilenumbrüche enthalten.
Um darauf in Form einer StringList zuzugreifen müsste man es einer zuordnen

Delphi-Quellcode:
//schnipp
var
  sl : TStrings;
begin
  sl:=TStringList.Create;

  AdoDataSet1.CommandText:='select * from mytable';

  sl.Text:=AdoDataSet1.CommandText;

  sl.Add('where ID=44');

  AdoDataSet1.CommandText:=sl.Text;

  sl.Free;
end;
//schnapp
Obwohl das die Mühe vielleicht gar nicht lohnt ist das wohl die einzige Möglichkeit - so weit ich weiß

Ciao

Marco

Biohazard 2. Mär 2004 09:11

Re: Frage zu AdoDataset. Commandtext
 
@r_kerber

so wie du es schreibst wird immer eine Zeile hinzugefügt.
Mit
Delphi-Quellcode:
query.sql.strings[X]:= sqlstring;
greift man auf eine bestimmte Zeile zu. So könnte man während der Laufzeit mal schnell die WHERE oder ORDER BY Bedingung ändern.


@MarcoWarm
Ja. Sitmmt. Der Aufwand ist da wohl zu groß. Müsste man sowas halt doch mit einer ADOQuery lösen.

Robert_G 2. Mär 2004 10:23

Re: Frage zu AdoDataset. Commandtext
 
Wenn du eine StringList unter PRIVATE/PUBLIC des Forms deklarierst, kannst du sie wie die SQL-Property einer ADOQuery nutzen.
Vor dem Ausführen noch ein...
Delphi-Quellcode:
  ADOCommand.CommandText := CommList.Text;
... fertig.
Diese Zeilenbasteleien sind aber nicht nur unübersichtlich im Code, sie sind auch fehleranfällig.
(Weißt du auch noch in 2 Wochen, dass du das SQL-Statement auf keinen Fall anders formatieren/umschreiben darfst?)
Teile die Statements einfach von Anfang an in Abfrage und Where-clause auf, dann sind dir auch die Zeilen vollkommen egal.


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