The following code in VFP works well for 1st time. Repeat run causes the error "OLE Object may be corrupt".
The only solution is to quit VFP and run the code again, but only once.
oCR = CREATEOBJECT("CrystalRuntime.Application")
oRpt = oCR.OpenReport(FULLPATH('')+"SAMPLE.RPT")
oConn = CREATEOBJECT("ADODB.Connection")
oConn.ConnectionString = "Provider=vfpoledb;Data Source="+ FULLPATH('')+";Collating Sequence=general;"
oConn.Open
oRS = CREATEOBJECT('adodb.recordset')
oRS.Open("SELECT * FROM SWDAT.DBF", oConn)
oRpt.Database.SetDataSource(oRS) && Throws Error on 2nd run : OLE Object may be corrupt
oRpt.Database.Tables.Item(1).Parent.Verify()