Article ID: 195623
Article Last Modified on 10/16/2002
BEGIN TRANSACTION TABLEUPDATE() END TRANSACTION
USE TABLE_NAME AGAIN NOUPDATE
PUBLIC oa, ob
* Trap the verion of VFP
ver_number=VAL(SUBSTR(VERSION(),15,2))
oa=CREATEOBJECT('indexpra')
ob=CREATEOBJECT('indexprb')
oa.SHOW
ob.SHOW
READ EVENTS
CLOSE ALL
IF ver_number>5
* Visual FoxPro 6.x.
* Set path to samples.
USE HOME(2)+'data\customer' EXCL
ELSE
* Visual FoxPro 3.x or 5.x.
* Set path to samples.
USE home()+'samples\data\customer' EXCL
ENDIF
GO BOTT
* Native Order, so the newly added record is visible.
BROWSE ;
TITLE "Native Order, New Record Visible" ;
TIMEOUT 15
SET ORDER TO TAG cust_id
GO TOP
* Order is CUST_ID, but the newly added record is not visible
BROW ;
TITLE "CUST_ID Order, New Record Not Visible" ;
TIMEOUT 15
* REINDEX will fix the problem.
REINDEX
GO TOP
* Order is CUST_ID, and the newly added record is visible
BROW ;
TITLE "REINDEX CUST_ID Order, New Record Visible" ;
TIMEOUT 15
CLOSE ALL
DEFINE CLASS indexpra AS FORM
DATASESSION = 2
DOCREATE = .T.
BUFFERMODE = 2
CAPTION = "Form1"
NAME = "Form1"
CLOSABLE=.F.
MAXBUTTON=.F.
MINBUTTON=.F.
PROCEDURE INIT
SET MULTILOCKS ON
IF ver_number>5
USE HOME(2)+'data\customer' AGAIN NOUPDATE
ELSE
USE home()+'samples\data\customer' AGAIN NOUPDATE
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS indexprb AS FORM
DATASESSION = 2
DOCREATE = .T.
BUFFERMODE = 2
CAPTION = "Form1"
NAME = "Form1"
AUTOCENTER=.T.
CLOSABLE=.F.
MAXBUTTON=.F.
MINBUTTON=.F.
ADD OBJECT command1 AS COMMANDBUTTON WITH ;
TOP = 36, ;
LEFT = 96, ;
HEIGHT = 37, ;
WIDTH = 193, ;
CAPTION = "Add Record", ;
NAME = "Command1"
ADD OBJECT command2 AS COMMANDBUTTON WITH ;
TOP = 96, ;
LEFT = 96, ;
HEIGHT = 37, ;
WIDTH = 193, ;
CAPTION = "Save Record & Close", ;
NAME = "Command2", ;
ENABLED=.F.
PROCEDURE command1.CLICK
INSERT INTO customer (cust_id,company, contact, TITLE, ;
Address, city, REGION, postalcode, country, phone, ;
fax, maxordamt) ;
VALUES ("0000"+ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Company "+ ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Contact " + ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Title "+ ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Address " + ALLTRIM(STR(RECCOUNT()+1,10)), ;
"City "+ ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Region " + ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Post "+ ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Country " + ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Phone "+ ALLTRIM(STR(RECCOUNT()+1,10)), ;
"Fax " + ALLTRIM(STR(RECCOUNT()+1,10)), ;
RECCOUNT()+1)
THIS.ENABLED=.F.
THISFORM.COMMAND2.ENABLED=.T.
THISFORM.REFRESH
ENDPROC
PROCEDURE command2.CLICK
LOCAL llSuccess
BEGIN TRANSACTION
IF TABLEUPDATE(.T.,.T.,"Customer")
END TRANSACTION
WAIT WINDOW "Update Succeeded" NOWAIT
ELSE
ROLLBACK
WAIT WINDOW "Update Failed" NOWAIT
ENDIF
oa.RELEASE
THISFORM.RELEASE
CLEAR EVENTS
ENDPROC
PROCEDURE INIT
SET MULTILOCKS ON
IF ver_number>5
USE HOME(2)+'data\customer' AGAIN
ELSE
USE home()+'samples\data\customer' AGAIN
ENDIF
=CURSORSETPROP('BUFFERING',3,'Customer')
ENDPROC
ENDDEFINE
DO CDXDEMO
Keywords: kbbug kbfix kbdatabase kbvs600sp3fix KB195623