Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
APPEND FROM DBF() and lossing data...
Message
De
09/10/2002 08:35:44
 
 
À
24/09/2002 16:46:11
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00703914
Message ID:
00709196
Vues:
17
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?
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform