Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
APPEND FROM DBF() and lossing data...
Message
From
09/10/2002 08:35:44
 
 
To
24/09/2002 16:46:11
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00703914
Message ID:
00709196
Views:
15
Here is an update to this issue.

Instead of using APPEND FROM DBF('cursor') I used INSERT INTOs - no more missing data.

The problem is apparently related to the way COM is handled inside
of Windows 2000 or so I have heard. The temp work area is somehow being
altered - thus causing the erradict behavior. It is my understanding
from another VFP developer that Microsoft is aware of this behavior
and it will be corrected in the future.

>ALL ROWs get dropped. It is a straight unfiltered APPEND FROM (not FOR condition). I have an error routine but did not see it in there and of course purged it to keep things clean (wish I had not done that).
>
>I seem to recall there are situations where you not only need to SELECT a table but there do something like INKEY(.1) to let VFP catch up. Since this is all being done inside of a MTDLL it is much more difficult to trace.
>
>>Right then.
>>
>>So what is the nature of the problem in terms of missed data - all rows sometimes or last n rows sometimes or every second row sometimes or...?
>>
>>I assume to that your example is correct in that you do not use some filter condition in the APPEND FROM.
>>
>>Do you have an error routine that might be dropping (notification of) an error condition arising?
>>
>>good luck
>>
>>>It is NOT a filtered cursor rather it is a code CREATEd CURSOR that has its values populated from the web form then validated prior to adding all 15 rows of the cursor to the VFP table.
>>>
>>>>Tom,
>>>>
>>>>Is it possible that your "cursor" is NOT really a cursor, but rather a 'filtered result set'?
>>>>
>>>>If so, and you are using VFP6 or better, then the NOFILTER clause should fix that.
>>>>
>>>>If not, what records are you losing - all of them or just the last few or???
>>>>
>>>>good luck
>>>>
>>>>
>>>> >I have an application that is a MTDLL on a web site that saves 15 rows of data from a cursor to a permanent DBF table using the following commands:
>>>>>
>>>>>
>>>>>SELECT table
>>>>>APPEND FROM DBF('cursorname')
>>>>>
>>>>>
>>>>>I suppose the code would be better written as follows:
>>>>>
>>>>>
>>>>>SELECT table
>>>>>IF FLOCK()
>>>>>  APPEND FROM DBF('cursorname')
>>>>>ENDIF
>>>>>UNLOCK
>>>>>FLUSH
>>>>>
>>>>>
>>>>>The other alternative is to loop thru the cursor and do INSERT INTOs as such:
>>>>>
>>>>>
>>>>>SELECT cursor
>>>>>SCAN
>>>>>  SCATTER MEMVAR
>>>>>  INSERT INTO table FROM MEMVAR
>>>>>ENDSCAN
>>>>>
>>>>>
>>>>>I suppose the erradict data loss may be part of a contention issue but I find that somewhat unlikely (but possible) as this is not a heavily trafficed site.
>>>>>
>>>>>Anyone ever had a similar issue and what is the best solution - APPEND FROM or INSERT INTO?
Previous
Reply
Map
View

Click here to load this message in the networking platform