Options

Error: Data set doesn't exist

twctwc Member Posts: 28
Hi,

I going mad because of this error. I'm searching in a Table and by modifying a Dataset I get the messagge that the Dataset does not exist.

The code should set a tag by the last dataset of given set with fix "Item No.". Because of this a should modify the second-last found dataset.

Here the code:

PlanningBuffer.SETCURRENTKEY("Item No.",Date,Sort);
PlanningBuffer.COPYFILTERS("Planning Buffer");
OldItem := '';
lbo_First := TRUE;
IF PlanningBuffer.FIND('-') THEN BEGIN
REPEAT
IF (PlanningBuffer."Item No." <> OldItem) AND (NOT lbo_First) THEN BEGIN
// lre_PlanningBuffer.GET(lre_PlanningBuffer."Buffer No.");
lre_PlanningBuffer.Action := 'last';
lre_PlanningBuffer.MODIFY;
END;
OldItem := PlanningBuffer."Item No.";
lre_PlanningBuffer.COPY(PlanningBuffer);
message('I[%1],M[%2]',PlanningBuffer."Item No.",PlanningBuffer."Buffer No.");
lbo_First := FALSE;
UNTIL PlanningBuffer.NEXT = 0;
// lre_PlanningBuffer.GET(lre_PlanningBuffer."Buffer No.");
lre_PlanningBuffer.Action := 'last';
lre_PlanningBuffer.MODIFY; // here the error
END;

Thanks a lot and regards,
Tommaso
Tommaso Cereghetti
IT-Consultant

Comments

  • Options
    Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
    Is the buffer a temporary table?

    You do a

    lre_PlanningBuffer.COPY(PlanningBuffer);

    If this is a temporary table and the record does not exist you can try an INSERT instead of the Modify.

    If the record does exist you can try to get it instead of the copy.
  • Options
    twctwc Member Posts: 28
    Thank you for your answer.

    Yes, the buffer is a temporary table.
    But I should not insert a new dataset, I should only change the value of the field Action. What is surprising is that I cann't change a dataset that I have only just found.
    Tommaso Cereghetti
    IT-Consultant
  • Options
    Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
    That is the problem with temporary tables. They only exist in the variable.

    If you define a second table then this is empty.

    With normal tables you can do

    Cust.GET;
    Cust.Name := NewName;
    Cust2 := Cust;
    Cust2.MODIFY;

    This you cannot do with temporary tables.

    You realy need to modify the orriginal table.
  • Options
    twctwc Member Posts: 28
    That was the problem!

    Thank you very much!
    Tommaso Cereghetti
    IT-Consultant
Sign In or Register to comment.