4 Stimmen

ADO DataSet verwenden EOF oder IsEmpty?

Der Großteil meines Codes für den Zugriff auf einen Stored-Procedure-Datensatz (MS SQL Server, forward-only, readonly) ist ein Rückgriff auf meine Clipper-Programmierung von vor vielen Jahren

Bei der Überprüfung des Codes ist mir heute ein Verweis auf IsEmpty in einem ähnlichen Codeblock aufgefallen. Ist dies nur eine Vorliebe oder gibt es einen wirklichen Unterschied in dem Beispielszenario?

MyStoredProc.Open;
if not MyStoredProc.IsEmpty then
begin
  DoSomething;
end;

In der Regel verwende ich

MyStoredProc.Open;
if not MyStoredProc.Eof then
begin
  DoSomething;
end;

Vor allem, weil es die Praxis widerspiegelt, die ich in einer while-Schleife verwende, wenn es um mehr als einen Datensatz geht:

MyStoredProc.Open;
while not MyStoredProc.Eof then
begin
  DoSomething;
  MyStoredProc.Next;
end;

5voto

RRUZ Punkte 132753

En IsEmpty dient der Überprüfung, ob der Datensatz Datensätze enthält, und Evon dient der Überprüfung, ob der aktuelle Datensatz der letzte ist. In Ihrem Fall, wenn Sie über einen Datensatz iterieren müssen, verwenden Sie eof, um festzustellen, ob Sie den letzten Datensatz erreichen.

3voto

IsEmpty ist gleichbedeutend mit Bof and Eof , nicht gleichbedeutend mit Eof .

In diesem speziellen Fall ist es direkt nach dem Öffnen eines neuen Datensatzes äquivalent zu Eof (denn Sie wissen Bof gilt auch), aber im Allgemeinen ist es nicht so.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X