![]() |
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 ! |
AW: RecordCount an Varibale übergeben
-Wo ist die Variable deklariert?
-Was für ein DataSet? Btw. Falscher Bereich ( Geht doch um Datenbanken) |
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; |
AW: RecordCount an Varibale übergeben
OK, der Bereich geht noch (unpassend, aber nicht komplett falsch).
Zitat:
|
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. |
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 |
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 ... |
AW: RecordCount an Varibale übergeben
Gib doch mal einfach das "Zwischenergebnis" aus:
- OutputDebugStr(IntToStr(Dataset.Recordcount)); - OutputDebugStr(IntToStr(Counter)); |
AW: RecordCount an Varibale übergeben
Ich würde es auch vor die Schleife packen und nicht innen drin.
|
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 00:54 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