Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Another VFP DLL Question
Message
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Miscellaneous
Thread ID:
00538616
Message ID:
00539719
Views:
16
>Trey,
>
>THIS IS WEIRD!
>
>Acting on your idea, I added:
>
>
>nHandle = FCREATE("dlltest.txt")
>=FPUTS(nHandle, oRecord.RecordId)
>=FPUTS(nHandle, oRecord.FullName)
>=FCLOSE(nHandle)
>

>
>to the SaveChanges, right before the GATHER
>and everything works fine now!! The values are
>in the Text file AND the table!
>
>Go figure

Let's try again and not misspell the tags.:-)

Kevin,

I think that I may have a soltuion to your problem.

After re-reading your code and doing some experimenting on my own, the problem may be solvable. I think that the basic problem here is VFP 6.0's inability to resolve properties of objects unless there's either a type library or each individuall property has been referenced. For example, with any in-process server, using the SCATTER command returns an object, but its members cannot be visually seen in the debugger. Further, doing a GATHER from this object doesn't work for the same reason that the debugger doesn't show the individual properties.

However, if the properties are referenced, then everything is OK. As a result, I'd suggest that you copy the individual fields into an array and then, in some way refence them. For example, assuming that the object has a property array named a_fields created from the AFIELDS function;
lnlast = ALEN(oObj.. a_fields, 1)
FOR lni = 1 TO lnlast
   lcmac = "lcvar = oObj.a_fields[" + TRANSFORM(lni), + ",1]"
  &lcmac
NEXT
It should expose each of the fields to your gather routine. Otherwise, I think that the same might be true if you have a procedure in the DLL to append the records. For what I can tell, tables opened by a DLL cannot be seen. even though they're in the same address space as VFP.

hth,
George

Ubi caritas et amor, deus ibi est
Previous
Reply
Map
View

Click here to load this message in the networking platform