Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 13 total
Thread Eof fails ?
Wed, May 10 2006 7:24 AMPermanent Link

"Jose Eduardo Helminsky"
One of my customers complains about a following situation:

TIno.SetRange([TNotNum.Value],[TNotNum.Value]);
TIno.First;
while not TIno.Eof do begin
   // Generate a record on another table TMov

   TIno.Edit;
   TInoVal.Value := 'OK';
   TIno.Post;
   TIno.Next;
end;

DBISAM 4.22 b4, Delphi6 running on C/S environment and I am *pretty SURE*
that the server didn't crash.

In that situation, TIno had just one record and there are *two* records on
TMov referencing TIno. What I am intend to understand is *how* this can
occurs. The code is inside a restricted transaction. This is very rare but
it should never occurs.

Eduardo

Wed, May 10 2006 12:46 PMPermanent Link

"Robert"
Changing a value has made the record be out of the filter (or setrange) so
the Next bring you to eof.

Robert

"Jose Eduardo Helminsky" <contato@hpro.com.br> wrote in message
news:FEE6E0C1-181D-4E11-8BB7-69CB9879E445@news.elevatesoft.com...
> One of my customers complains about a following situation:
>
> TIno.SetRange([TNotNum.Value],[TNotNum.Value]);
> TIno.First;
> while not TIno.Eof do begin
>    // Generate a record on another table TMov
>
>    TIno.Edit;
>    TInoVal.Value := 'OK';
>    TIno.Post;
>    TIno.Next;
> end;
>
> DBISAM 4.22 b4, Delphi6 running on C/S environment and I am *pretty SURE*
> that the server didn't crash.
>
> In that situation, TIno had just one record and there are *two* records on
> TMov referencing TIno. What I am intend to understand is *how* this can
> occurs. The code is inside a restricted transaction. This is very rare but
> it should never occurs.
>
> Eduardo
>
>

Wed, May 10 2006 1:44 PMPermanent Link

"Jose Eduardo Helminsky"
Robert

I agree with you but this is not the case. The value of keys fields were
untouched, I've changed another field but EOF should be True and if you read
again my code you will see if there is only one record in the table filtered
but while..end process it twice.

BTW, thanks.

Eduardo

Wed, May 10 2006 3:44 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Eduardo,

<< In that situation, TIno had just one record and there are *two* records
on TMov referencing TIno. What I am intend to understand is *how* this can
occurs. The code is inside a restricted transaction. This is very rare but
it should never occurs. >>

If what you say is the case, then it shouldn't occur if the table is in good
shape.  Also, were you able to reproduce this ?  If so, please send me the
table that you're using.

Thanks,

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, May 10 2006 3:45 PMPermanent Link

"Frans van Daalen"

"Jose Eduardo Helminsky" <contato@hpro.com.br> wrote in message
news:EDE47BD4-C18F-4ED1-A626-6F054504A389@news.elevatesoft.com...
> Robert
>
> I agree with you but this is not the case. The value of keys fields were
> untouched, I've changed another field but EOF should be True and if you
> read again my code you will see if there is only one record in the table
> filtered but while..end process it twice.
>
> BTW, thanks.
>
> Eduardo
>

Any sorts on the Tino that is affected by the TinoVal value of 'OK'.? I
agree with Robert that the best guess is that the edit is the one to blame
in reordering the resultset and therefor resetting its position on the
record in the table.

If you can simple reproduce it than add a TIno2 and edit this one. and see
if the problem stays

Wed, May 10 2006 4:40 PMPermanent Link

"Jose Eduardo Helminsky"
Frans

The fields changed doesn't belong to the range neither to the index key and
therefore any changes can't alter the order of TIno.

Eduardo


Wed, May 10 2006 4:42 PMPermanent Link

"Jose Eduardo Helminsky"
Tim

> If what you say is the case, then it shouldn't occur if the table is in
> good shape.  Also, were you able to reproduce this ?  If so, please send
> me the table that you're using.

I will try to verifytable tonight.
Right now I can't reproduce it. This is a very rare but it happened at least
two times from last three months.

Eduardo

Thu, May 11 2006 4:45 AMPermanent Link

Arnd Baranowski
Eduardo,

What processor does your customer have? We had something like that to
happen on an AMD, while everything on an Intel went as it should. It
happened only once on one of our notebooks. However on this notebook it
was reproducable.

Arnd

Jose Eduardo Helminsky wrote:
> One of my customers complains about a following situation:
>
> TIno.SetRange([TNotNum.Value],[TNotNum.Value]);
> TIno.First;
> while not TIno.Eof do begin
>     // Generate a record on another table TMov
>
>     TIno.Edit;
>     TInoVal.Value := 'OK';
>     TIno.Post;
>     TIno.Next;
> end;
>
> DBISAM 4.22 b4, Delphi6 running on C/S environment and I am *pretty SURE*
> that the server didn't crash.
>
> In that situation, TIno had just one record and there are *two* records on
> TMov referencing TIno. What I am intend to understand is *how* this can
> occurs. The code is inside a restricted transaction. This is very rare but
> it should never occurs.
>
> Eduardo
>
>
Thu, May 11 2006 6:17 AMPermanent Link

"Jose Eduardo Helminsky"
Arnd

The processor is Intel and I can't reproduce the error.

Eduardo

Thu, May 11 2006 6:53 AMPermanent Link

"Robert"

"Jose Eduardo Helminsky" <contato@hpro.com.br> wrote in message
news:6D8D997D-3639-4D7D-AE90-D30B8CE9AFAA@news.elevatesoft.com...
> Arnd
>
> The processor is Intel and I can't reproduce the error.
>

Is it possible that you have set a filter on the table that did not get
removed? That could explain the sporadic problem, it would appear only when
the filter is on, so it would depend on what the user did before this
function. You could do a search on all the programs for table.filter.

Robert

Page 1 of 2Next Page »
Jump to Page:  1 2
Image