Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   RecordCount an Varibale übergeben (https://www.delphipraxis.net/154237-recordcount-varibale-uebergeben.html)

arcon 2. Sep 2010 10:57

RecordCount an Varibale übergeben
 
Hallo miteinander,

warum ist es nicht möglich .. die Anzahl eines Datasets durch RecordCount an eine Variable zu übergeben ?

Ich mach das folgendermaßen .. anzahl := Dataset.RecordCount

aber leider bringt es mir nicht den gewünschten erfolg...

was mache ich falsch ?

danke für eure antworten !

mkinzler 2. Sep 2010 11:00

AW: RecordCount an Varibale übergeben
 
-Wo ist die Variable deklariert?
-Was für ein DataSet?

Btw. Falscher Bereich ( Geht doch um Datenbanken)

arcon 2. Sep 2010 11:04

AW: RecordCount an Varibale übergeben
 
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);

var
  ConnString : String;
  Connection : TADOConnection;
  DataSet    : TADODataSet;
  SQL        : String;
  Val        : OleVariant;
  Parameter  : String;
  Value      : String;
  Counter    : Integer;
begin

  try
    Connection := TADOConnection.Create(Self);
    DataSet    := TADODataSet.Create(Self);
    try
      ConnString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=..............;Data Source=............;


      Connection.ConnectionString := ConnString;
      try
        Connection.Open;

        SQL := 'Select * from parameter_changes_Monitoring_Parameter_Values order by Parameter';
        connection.Execute(SQL);


        DataSet.Connection := Connection;
        DataSet.CommandType := cmdText;
        DataSet.CommandText := SQL;

        DataSet.Open;
        try

            begin

              while (DataSet.Recordset.EOF = False ) do
                begin
                  Counter:= Dataset.Recordcount;
                  Val := DataSet.RecordSet.Fields['Parameter'].Value;
                  DataSet.Next
                end;



            end

        except
//        on E : Exception do
//          SetError(...................);
        end;

      except
//        on E : Exception do
//          SetError(Error_Open_Database, E.Message);
      end;

    finally
      try
        if DataSet.Active then
          DataSet.Close;

        if Connection.Connected then
          Connection.Close;

        FreeAndNil(DataSet);

        FreeAndNil(Connection);


      except
//        on E : Exception do
//          SetError(Error_Closing_Database, E.Message);
      end;
    end;

  except
//    on E : Exception do
//      SetError(Error_Creating_ADO_Objects, E.Message);
  end;
end;


end.

ob der auszug sinn ergibt .. ist erstmal dahin gestellt .. hier geht es erstmal nur um das problem, dass die variable counter nicht den wert von recordcount annimmt..

Delphi-Quellcode:
  while (DataSet.Recordset.EOF = False ) do
                begin
                  Counter:= Dataset.Recordcount;
                  Val := DataSet.RecordSet.Fields['Parameter'].Value;
                  DataSet.Next
                end;

himitsu 2. Sep 2010 11:10

AW: RecordCount an Varibale übergeben
 
OK, der Bereich geht noch (unpassend, aber nicht komplett falsch).

Zitat:

aber leider bringt es mir nicht den gewünschten erfolg...
Was passiert, bzw. passiert denn nicht?

Die Muhkuh 2. Sep 2010 11:13

AW: RecordCount an Varibale übergeben
 
Ich denke mal, da das Ding in der Schleife ist, ist es eher RecordNo was du suchst (oder RecNo).

RecordCount > Anzahl der gefundenen Datensätze
RecNo > Aktueller Datensatz in der gefundenen Liste.

hoika 2. Sep 2010 11:14

AW: RecordCount an Varibale übergeben
 
Hallo,

RecordCount liefert die Anzahl der gelesenen Datensätze,
nicht Anzahl aller Records.

Die BDE hat das damals allerdings auch anders "implementiert".

Der richtige Weg ist eine zusätzliche Abfrage
Select Count(*)


Heiko

arcon 2. Sep 2010 11:17

AW: RecordCount an Varibale übergeben
 
ich lass das programm laufen .. und es passiert alles, was ich mich mir gewünscht habe .. bis auf die übernahme der anzahl von recordcount an counter ...

kann das problem daran liegen, dass ich zwar die anzahl übergebe, aber nichts mehr mit counter mache .. und er das deswegen weglässt ?

ich les die datensätze mit dem sql befehl aus .. und möchte nun die ANZAHL der datensätze an Counter übergeben .. damit ich im nachhinein ein array aufbauen kann, wo ich die einträge aus dem dataset einlesen kann .. das array ist deswegen nötig, da ich dieses array mit einem anderen array vergleichen will .. und bei einer änderung etwas passieren soll ...

stahli 2. Sep 2010 11:25

AW: RecordCount an Varibale übergeben
 
Gib doch mal einfach das "Zwischenergebnis" aus:
- OutputDebugStr(IntToStr(Dataset.Recordcount));
- OutputDebugStr(IntToStr(Counter));

Die Muhkuh 2. Sep 2010 11:26

AW: RecordCount an Varibale übergeben
 
Ich würde es auch vor die Schleife packen und nicht innen drin.

arcon 2. Sep 2010 11:33

AW: RecordCount an Varibale übergeben
 
vielleicht hilft es ja auch noch, dass der mir, wenn ich das programm durchlaufe .. und ich mir es anschaue .. dass der compiler dann sagt, dass ich nicht auf die variable counter zugreifen kann( wegen optimierung-Fehler E2171)

hilft das weiter ?


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