Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Access to ACT! databases
Message
From
03/03/1999 09:53:45
 
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00193131
Message ID:
00193555
Views:
13
>I'm looking for some online resources regarding accessing ACT! (Symantec PIM) data from VFP. I'd rather not have to purchase CodeBase.
>
>In particular, I'm looking for:
>
>1) How they generate their UNIQUE_ID field. It is a base 62 number. I'm wondering if they just generate a unique_id and then check for a collision.
>
>2) Where/how to get to the Notes/History entries.
>I've got most of the other tables figured out.



There is a SDK available from Symantec that allows reading the notes/history records. Here is the code that I used:


IF type('dbName') = "U"
PUBLIC dbname
ENDIF
dbname = "client.DBF"


*!* *thisform.olecontrol2.printerSelect()

*!* IF file('I:\ACT\DATABASE\CLIENT.HDB')
*!* * wait window 'Loading from Server - Press a key to continue'
*!* ThisForm.Olecontrol1.object.reportfilename = 'C:\TAP\EXPORT1I.RPT'
*!* else
*!* ThisForm.Olecontrol1.object.reportfilename = 'C:\TAP\EXPORT1.RPT'
*!* ENDIF

*!* thisform.olecontrol1.printreport()





SET SAFETY OFF
objDatabase = CreateObject("ACTOLE.DATABASE")
objDatabase.Open(dbname)
*
* perform login validation
*
IF !thisform.Login()
WAIT window "Failed user validation process!!!"
ENDIF
*** 'Check if version of the ACTOLE.dll is 3.06 or greater (3.05 returns a 1 )'
IF objDatabase.MajorVersion = 1
=MsgBox("You have an ACTOLE.dll older than version 3.06." + ;
Chr(13) + "This function needs the new features. Please Update and Retry! ")
objDatabase.Close
RETURN .f.
ENDIF



create TABLE EXPORT1 ( A C(12), B C(20), D N(2), E C(100) )
**SUSPEND
objNoteHistory = objDatabase.NOTEHISTORY
objNoteHistory.MoveFirst
A = objNoteHistory.Data(1)
D = val(objNoteHistory.Data(25))
E = objNoteHistory.Data(26)
B = DTOC(objNoteHistory.Data(200))
insert into export1 from memvar
counter = 0
DO while .t.
objNoteHistory.Movenext
IF objNoteHistory.Iseof
exit
else
A = objNoteHistory.Data(1)
D = val(objNoteHistory.Data(25))
E = objNoteHistory.Data(26)
B = DTOC(objNoteHistory.Data(200))
insert into export1 from memvar
ENDIF
* ? fld1 + fld2 + fld3 + dtoc(fld4)
counter = counter + 1
if mod(counter,100) = 0
wait window nowait 'Loading data ' + alltrim(str(counter)) + ' records read.'
endif
ENDDO
wait clear
objDatabase.close




>
>TIA, Ben
>
>Ben Holton
>ACG Software, Inc.
>Dunwoody, GA
Previous
Reply
Map
View

Click here to load this message in the networking platform