Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: RecordCount synchronisieren zwischen ibQuery und ibtable

  Alt 28. Nov 2006, 17:43
Hallo,

Delphi-Quellcode:
DataModuleMain.dsqueryzeiterfassungsansicht.DataSet.First;
    while not DataModuleMain.ibqueryzeiterfassungansicht.Eof do
      begin
      DataModuleMain.ibqueryzeiterfassungansicht.Locate('zeiterfassung_id', DataModuleMain.ibtablezeiterfassungZEITERFASSUNG_ID.value,[]);
      counterrecord := DataModuleMain.ibtablezeiterfassung.RecordCount;
      DataModuleMain.ibqueryzeiterfassungansicht.LocateNext('zeiterfassung_id', DataModuleMain.ibtablezeiterfassungZEITERFASSUNG_ID.value,[]);
      DataModuleMain.ibtablezeiterfassung.Next;
      end;
ShowMessage(inttostr(counterrecord));
Finster

Also du fängst mit einem DataSource(ds).DataSet.First an,
dann ein while no Query.EOF
und zum Schluss ein IBTable.Next.

Du produzierst hier ne Menge DB-Code, denke ich mal.
Zum zählen nimmt man immer noch Select Count(*)
Ich würde mir mal das ganze im SQL-Monitor ansehen.

Wenn die Daten nach zeiterfassung_id sortiert sind,
und du die noch nachfolgenden Daten haben willst,
wäre das also ein select count(*) from table where zeiterfassung_id>eineID

Das "DataModuleMain.dsqueryzeiterfassungsansicht.DataS et.First;"
ist auch nicht so gut, falls das ds wirklich ein DataSource ist,
was an einer Komponente hängt.
DisableControls fehlt dann, sonst wird die Komponente gezwungen,
durch deinen Code jedesmal ihre Anzeige zu aktualisieren.

Wenn es geht, ersetze die TIBTable komplett,
die ist nur aus "Kompatibilität" da und etwas lahm.


So, Feierabend !


Heiko
Heiko
  Mit Zitat antworten Zitat