Re: INTO TABLE vs INTO CURSOR READWRITE

Author: Rafael Copquin

Posted: 2010-07-30 at 08:42:47

I found that the best way to delete records from a readwrite cursor

bound to a grid is as follows:

select (fieldlist) from (disktable) into cursor curGridCursor readwrite

nofilter

(the above populares grid1, then you can delete records from it, do

other operations, etc.)

At the time of showing the grid back, without the deleted records, call

a delete method in your form with the following code:

** delete method

thisform.grid1.recordsource = ''

use in select('curTemp')

select * from curGridCursor into cursor curTemp where not deleted()

select curGridCursor

zap

append from dbf('curTemp')

use in select('curTemp')

with thisform.grid1

.recordsource = 'curGridCursor'

.column1.controlsource = 'curGridCursor.field1'

.column2.controlsource = 'curGridCursor.field2'

etc

endwith

In this manner, the grid never looses its settings, you do not see the

deleted record mark in the grid and you can go back to your regular

operations "unscathed" (:->).

Rafael Copquin

El 30/07/2010 6:58, msavage@golden.net escribió:

> If you need to remove deleted records, ie issue a pack, on the readwrite

> cursor this will do the trick.

>

> SELECT * FROM CursorName WHERE NOT DELETED() INTO CURSOR CursorName

> READWRITE.

>

> Voila! Cursor has no deleted records.

>

> Caveat! If the cursor is tied to a grid, you may find that all of your

> grid settings go away. Look up "SAFE SELECT" article on UT to have a way

> get around this issue.

>

> HTH,

> Mike

>

>

>> Thanks Vince& Lew!

>>

>> I just found this line in the VFP helpfile:

>> "NOFILTER creates a cursor that can be used in subsequent queries."

>>

>> So it would seem READWRITE NOFILTER is the proper equivalent to INTO

>> TABLE..

>>

>> -Steve

>>

>>

>> At 09:56 PM 07/29/2010, you wrote:

>>

>>> Steve Ellenoff wrote:

>>>

>>>> Is there any difference between these two?

>>>>

>>>> I'm looking at some older code and I have remarks about the SELECT

>>>> SQL using INTO TABLE to avoid some VFP errors that says something

>>>> like, "Command cannot be issued on a cursor" or something to that

>>>>

>>> effect.

>>>

>>>> Would changing my code to CURSOR READWRITE work equally well as the

>>>> INTO TABLE ?

>>>>

>>> If you used tables to avoid "operation can not be performed on a

>>> cursor," I would think you could do CURSOR READWRITE, followed by USE

>>> DBF("MyCursor") ALIAS Bob, and do whatever on Bob. Just off the top of

>>> my head.

>>>

>>>

>>>

>>>

[excessive quoting removed by server]

_______________________________________________

Post Messages to: ProFox@leafe.com

Subscription Maintenance: http://leafe.com/mailman/listinfo/profox

OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech

Searchable Archive: http://leafe.com/archives/search/profox

This message: http://leafe.com/archives/byMID/profox/4C52C8C7.1030909@ciudad.com.ar

** All postings, unless explicitly stated otherwise, are the opinions of the author, and do not constitute legal or medical advice. This statement is added to the messages for those lawyers who are too stupid to see the obvious.

©2010 Rafael Copquin