Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.060 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

DataSnap abgerufenes DataSet RecordCount gibt exception aus

  Alt 12. Jul 2015, 19:33
Datenbank: Firebird • Version: 2.5 • Zugriff über: FireDac
Hallo Zusammen,


ich rufe eine DataSet vom Server ab und importiere die Daten in die DB über CopyDataSet.
Das funktioniert auch einwandfrei. Da ich mehrere Tabellen habe und ich den User den Verlauf
zeigen möchte, wollte ich nach dem Download LDataSet.RecordCount abfragen. Doch da bekomme ich eine Fehlermeldung

Code:
"Im Projekt ist eine Exception der Klasse EDatabaseError mit der Meldung 'Fehlende Abfrage, Tabelle- oder Procedurename' aufgetreten."
Naja dachte ich, ist mir egal, dann durchlaufe ich eben das DataSet da es eh nicht viele Datensätze sind
und zähle sie einfach in einer while Schleife. Doch danach wird nichts mehr importiert, auch nicht wenn ich
Code:
LDataSet.First;
ausführe. Close-Open des LDataSets brings auch nichts.

Hat jemand eine Idee?





Delphi-Quellcode:
function TdmDALClient.StammdatenDownloadTable(
  StammdatenTable: TStammdatenTablesEnum; AbTransferID: integer): Boolean;
var LDataSet: TDataSet;
    TableName:string;
    DataSetRecordCount:integer;
begin
  result := False;

  TableName := GetEnumName(TypeInfo(TStammdatenTablesEnum), Ord(StammdatenTable));


  LDataSet := dmClientContainer.FProxyInst.StammdatenDownloadTable(Ord(StammdatenTable), StammdatenAllTransferID);
  if Assigned(LDataSet) then
  begin

    if qrStammDatenImport.Active then qrStammDatenImport.Close;

    qrStammDatenImport.MacroByName('TableNamen').AsRaw := TableName;
    qrStammDatenImport.open;
    qrStammDatenImport.FetchAll;

// -------- Kein Import möglich --------
// DataSetRecordCount := 0;
// LDataSet.First;
// while not LDataSet.eof do
// begin
// inc(DataSetRecordCount);
// LDataSet.next;
// end;

    LDataSet.First;

    if Assigned(OnDALClientProgressEvent)
    then OnDALClientProgressEvent(Self, TableName, LDataSet.RecordCount, 'Stammdaten-Import'); //<<< Fehlermeldung bei LDataSet.RecordCount
// then OnDALClientProgressEvent(Self, TableName, DataSetRecordCount, 'Stammdaten-Import');

    qrStammDatenImport.CopyDataSet(LDataSet, [coRestart, coAppend, coEdit]);
    result := True;
  end;

end;
Gruß Kostas
  Mit Zitat antworten Zitat