Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Cursor deleted lines
Message
 
À
16/04/2007 12:09:11
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP2
Divers
Thread ID:
01216294
Message ID:
01216298
Vues:
17
>Hi
>How can I run 'set deleted on' on cursor, take a look on the following code:
set deleted on
>create cursor cursr1 (myfield c(3))
>insert into cursr1 values ('AAA')
>insert into cursr1 values ('BBB')
>insert into cursr1 values ('CCC')
>insert into cursr1 values ('DDD')
>
>select cursr1
>index on myfield tag myfield
>set order to tag myfield in cursr1
>
>crtotallines1=alltrim(str(reccount('cursr1')))
>
>messagebox(crtotallines1)
>
>
>select cursr1
>if seek ('CCC','cursr1','myfield')=.f.
>messagebox('prob',0+16)
>return
>endif
>delete in cursr1 for cursr1.myfield='CCC'
>
>select cursr1
>crtotallines2=alltrim(str(reccount('cursr1')))
>
>messagebox(crtotallines2)
>
>How can I get '3' in the second messagebox?
>
>Thank's

One way:
set deleted on
create cursor cursr1 (myfield c(3))
insert into cursr1 values ('AAA')
insert into cursr1 values ('BBB')
insert into cursr1 values ('CCC')
insert into cursr1 values ('DDD')

select cursr1 
index on myfield tag myfield 
set order to tag myfield in cursr1 

crtotallines1=alltrim(str(reccount('cursr1')))

messagebox(crtotallines1)


select cursr1 
if NOT seek ('CCC','cursr1','myfield')
   messagebox('prob',0+16)
   return
endif
delete in cursr1 for cursr1.myfield='CCC'
SET DELETED OFF
select cursr1
seek ('CCC','cursr1','myfield')
crtotallines2=alltrim(str(reccount('cursr1')))
messagebox(crtotallines2)
SET DELETED ON
Other way:
set deleted on
create cursor cursr1 (myfield c(3))
insert into cursr1 values ('AAA')
insert into cursr1 values ('BBB')
insert into cursr1 values ('CCC')
insert into cursr1 values ('DDD')

select cursr1 
index on myfield tag myfield 
set order to tag myfield in cursr1 

crtotallines1=alltrim(str(reccount('cursr1')))

messagebox(crtotallines1)


select cursr1 
if NOT seek ('CCC','cursr1','myfield')
   messagebox('prob',0+16)
   return
endif
lnRecNo = RECNO([Curs1])
delete in cursr1 for cursr1.myfield='CCC'

select cursr1
GOTO lnRecNo
crtotallines2=alltrim(str(reccount('cursr1')))
messagebox(crtotallines2)
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform