Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verwendung Datenmodul (https://www.delphipraxis.net/111137-verwendung-datenmodul.html)

d6lpz 30. Mär 2008 13:05


Verwendung Datenmodul
 
Hallo,
möchte ungefähr folgendes erreichen:

Delphi-Quellcode:
procedure TMain.lb_nameClick(Sender: TObject);
var
        i :integer;
begin

        for i:=1 to 12 do
                DataModule1.ADOQuery[i].active :=False
        end;
end;
Frage: wie kann man eine Variable in einem Bezeichner verwenden?

Danke für alle Tips

Dirk

[edit=MrSpock]Delphi-Code Tags eingefügt. Mfg, MrSpock[/edit]

mkinzler 30. Mär 2008 13:07

Re: Verwendung Datenmodul
 
Such mal nach .FindComponent()

d6lpz 30. Mär 2008 13:24

Re: Verwendung Datenmodul
 
Zitat:

Zitat von mkinzler
Such mal nach .FindComponent()

habe jetzt folgendes:
Delphi-Quellcode:
procedure TMain.lb_nameClick(Sender: TObject);
var
        str_datstart :string;
        str_datend :string;
        i :integer;
const
  NamePrefix = 'ADOQuery';

begin
        str_datstart :='01.01.2007';
        str_datend :='31.12.2007';

        for i:=1 to 12 do
                with DataModule1(FindComponent(NamePrefix + [i])) do
                begin
                        active :=False;
                end;
        end;
end;
funktioniert leider nicht - ich komme mit dieser Sache noch nicht zurecht :-(

DeddyH 30. Mär 2008 13:28

Re: Verwendung Datenmodul
 
Delphi-Quellcode:
with DataModule1.FindComponent(NamePrefix + IntToStr(i)) as TADOQuery do
Versuch es mal so.

[edit] Typecasting vergessen [/edit]

marabu 30. Mär 2008 13:37

Re: Verwendung Datenmodul
 
Hallo Dirk,

manchmal genügt eine einzelne Zeile zum Schließen aller offenen DataSets:

Delphi-Quellcode:
procedure TMain.lb_nameClick(Sender: TObject);
var
  str_datstart, str_datend: string;
  i: Integer;
  dtStart, dtEnd: TDateTime;
begin
  dtStart := EncodeDate(2007, 1, 1);
  dtEnd := EncodeDate(2007, 12, 31);

  // ...

  DataModule1.ADOConnection1.Close;
end;
Freundliche Grüße

d6lpz 30. Mär 2008 13:43

Re: Verwendung Datenmodul
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
with DataModule1.FindComponent(NamePrefix + IntToStr(i)) as TADOQuery do
Versuch es mal so.

[edit] Typecasting vergessen [/edit]

Danke !!

Sorry für meine NOCH unqualifizierten Fragen :gruebel: - bin halt beginner.

Dirk

DeddyH 30. Mär 2008 13:44

Re: Verwendung Datenmodul
 
Wir haben alle mal angefangen :zwinker:

d6lpz 30. Mär 2008 13:52

Re: Verwendung Datenmodul
 
Zitat:

Zitat von marabu
Hallo Dirk,

manchmal genügt eine einzelne Zeile zum Schließen aller offenen DataSets:

Delphi-Quellcode:
procedure TMain.lb_nameClick(Sender: TObject);
var
  str_datstart, str_datend: string;
  i: Integer;
  dtStart, dtEnd: TDateTime;
begin
  dtStart := EncodeDate(2007, 1, 1);
  dtEnd := EncodeDate(2007, 12, 31);

  // ...

  DataModule1.ADOConnection1.Close;
end;
Freundliche Grüße

Hallo

Aber zum Öffnen muß ich doch alle Querys einzeln aktivieren oder geht das auch anders??
Dirk

marabu 30. Mär 2008 14:02

Re: Verwendung Datenmodul
 
Zum Öffnen aller DataSets einer Connection kannst du über deren Eigenschaft DataSets[] iterieren. Vielleicht möchtest du das beim Ereignis AfterConnect() der Connection erledigen.

d6lpz 30. Mär 2008 14:03

Re: Verwendung Datenmodul
 
Zitat:

Zitat von DeddyH
Wir haben alle mal angefangen :zwinker:

Danke für dein Verständnis :hi:

Habe nach einigem Probieren und "Hilfe" lesen aber immer noch Probleme.

Bekomme bei Folgendem die Meldung '"." erwartet, aber ";" gefunden'
Delphi-Quellcode:
procedure TMain.lb_nameClick(Sender: TObject);
var
        x_datstart, x_datend: TDateTime;
        i :integer;
const
  NamePrefix = 'ADOQuery';

begin
        x_datstart := EncodeDate(2007, 1, 1);
        x_datend := EncodeDate(2007, 12, 31);

        for i:=1 to 12 do
            with DataModule1.FindComponent(NamePrefix + IntToStr(i)) as TADOQuery do
                begin
                        Active:=false;
                        Parameters.ParamByName('emplid').Value:=lb_name.KeyValue;
                        Parameters.ParamByName('DatStart').Value:=x_datstart;
                        Parameters.ParamByName('DatEnd').Value:=x_datend;
                end;
        end;
end;

end.
die Variante geht auch nicht:

Delphi-Quellcode:
procedure TMain.lb_nameClick(Sender: TObject);
var
        x_datstart, x_datend: TDateTime;
        i :integer;
const
  NamePrefix = 'ADOQuery';

begin
        x_datstart := EncodeDate(2007, 1, 1);
        x_datend := EncodeDate(2007, 12, 31);

        for i:=1 to 12 do
            with DataModule1.FindComponent(NamePrefix + IntToStr(i)) as TADOQuery do
                begin
                        .Active:=false;
                        .Parameters.ParamByName('emplid').Value:=lb_name.KeyValue;
                        .Parameters.ParamByName('DatStart').Value:=x_datstart;
                        .Parameters.ParamByName('DatEnd').Value:=x_datend;
                end;
        end;
end;

end.
Hast ud einmal ein Hinweis?
Dirk


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.
Seite 1 von 2  1 2      

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