>FUNCTION Str2Object >LPARAMETERS tcStr > >LOCAL loRetVal, lcName, lvValue > >loRetVal = CREATEOBJECT("Empty") > >CREATE CURSOR crsProps (Name C(32), Type C(1), Val M) >XMLTOCURSOR(lcXml, "crsProps",8192) > >SCAN > lcName = ALLTRIM(Name) > DO CASE > CASE Type = "N" OR Type = "Y" > lvValue = EVAL(Val) > CASE Type = "D" > lvValue = TTOD(CTOT(Val + "T00:00:00")) > CASE Type = "T" > lvValue = CTOT(Val) > CASE Type = "L" > lvValue = CAST(Val AS L) > CASE Type = "Q" > lvValue = EVALUATE("0h" + Val) > OTHERWISE > lvValue = ALLTRIM(Val) > ENDCASE > =ADDPROPERTY(loRetVal,lcName,lvValue) >ENDSCAN >USE IN crsProps >RETURN loRetVal >*------------------------------------------------ >FUNCTION Object2Str >LPARAMETERS toObject >LOCAL laFields[1], lnFieldNumber, lcFieldName, lcValue, lcType, lcXml >CREATE CURSOR Prop(Name C(32), Type C(1), Val M) >FOR lnFieldNumber = 1 TO AMEMBERS(laFields,toObject) > lcFieldName = laFields[lnFieldNumber] > lcValue = EVALUATE("toObject." + lcFieldname) > lcType = TYPE("lcValue") > DO CASE > CASE lcType == "N" OR lcType == "Y" > lcValue = TRANSFORM(lcValue) > CASE lcType == "D" > lcValue = LEFT(TTOC(DATE(),3),10) > CASE lcType == "T" > lcValue = TTOC(DATE(),3) > CASE lcType == "L" > lcValue = TRANSFORM(lcValue) > CASE lcType == "Q" > lcValue = STRCONV(o.varbinarytype, 15) > OTHERWISE > lcValue = ALLTRIM(lcValue) > ENDCASE > INSERT INTO Prop VALUES(lcFieldName, lcType, lcValue ) >ENDFOR >CURSORTOXML(ALIAS(), "lcXml") >USE IN Prop >RETURN lcXml >*------------------------------------------------ >* Example >TEXT TO lcXml NOSHOW ><?xml version = "1.0" encoding="Windows-1252" standalone="yes"?> ><VFPData> > <prop> > <name>LogicalType</name> > <type>L</type> > <val>.T.</val> > </prop> > <prop> > <name>NumericType</name> > <type>N</type> > <val>123456.789</val> > </prop> > <prop> > <name>IntegerType</name> > <type>N</type> > <val>123456</val> > </prop> > <prop> > <name>MoneyType</name> > <type>Y</type> > <val>123456.7890</val> > </prop> > <prop> > <name>DateType</name> > <type>D</type> > <val>2008-04-06</val> > </prop> > <prop> > <name>DateTimeType</name> > <type>T</type> > <val>2008-04-06T08:05:36</val> > </prop> > <prop> > <name>StringType</name> > <type>C</type> > <val>Converts a Visual FoxPro cursor to XML.</val> > </prop> > <prop> > <name>VarbinaryType</name> > <type>Q</type> > <val>48656c6c6f</val> > </prop> ></VFPData> >ENDTEXT > >o = Str2Object(lcXml) >? Object2Str(o) > >>>I can save a data object to a textstring, and rebuild the data object from the text string. I save the data in a memo field.