Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Weird SQL select behaviour
Message
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Titre:
Weird SQL select behaviour
Divers
Thread ID:
00090881
Message ID:
00090881
Vues:
61
I have noticed something weird, and to be honest quite scary:

The following code yielded different results:
1. 
select Airinfo
set order to 1
if seek(this.cMawb)
    scatter memo name this.Airinfo
else 
   error ...
endif

2.
select *;
   from airinfo;
   where mawb= this:cMawb;
  into cursor crsM1
if _tally- 1
  select crsM1
  scatter memo name this.Airinfo
else
  error ...
endif
The first version gave correct results.
The second version stores the correct record, but a version that dates of before an update that occurs during the same session (meaning no open/close took place between the update and the select).
The only way I could have the sql select statement yield correct results is when I unlocked the record before the select statement, so that the table get flushed.
The tables are plain dos compatible DBFs, no DBC. The update is executed with an sql update.
In between, another station "sees" the updated version.

So I conclude that an sql select does not see unflushed buffers, but seek and all the other stations do ...

Is this weird, or is this weird ...

Marc

If things have the tendency to go your way, do not worry. It won't last. Jules Renard.
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform