>>CREATE CURSOR myServers (cServer c(10), type c(3), name c(10)) >>INSERT INTO myServers VALUES (SYS(2015), 'DSN', 'Data' ) >>INSERT INTO myServers VALUES (SYS(2015), 'DSN', 'Form' ) >>INSERT INTO myServers VALUES (SYS(2015), 'DSN', 'Menu' ) >>INSERT INTO myServers VALUES (SYS(2015), 'FTP', 'Data' ) >>INSERT INTO myServers VALUES (SYS(2015), 'FTP', 'Form' ) >>INSERT INTO myServers VALUES (SYS(2015), 'FTP', 'Menu' ) >> >>loApp = CREATEOBJECT('Custom') >> >>loApp.AddProperty( 'myServers', NEWOBJECT('Collection') ) >> >>SCAN >> lcKey = TRIM(type)+'_'+TRIM(name) >> loApp.myServers.Add( CREATEOBJECT('Line'), m.lcKey) >> loApp.myServers.Item( m.lcKey ).Name = cServer >>ENDSCAN >> >>BROWSE nowait >>? loApp.myServers[ 'DSN_Form' ].Name >>? loApp.myServers[ 'FTP_Form' ].Name >>>>You have around 10 objects where speed wouldn't be a concern (whatever way you create and populate I mean). It's more important to keep them at a known place and access easily with a key. Collection looked ideal to me in your case.
>>>>>lcConn = "'o'+mytable.cname+'_'+mytable.ctype && e.g. lcConn now equals 'oDSN_Data' >>>>>PUBLIC &lcConn >>>>>&lcConn = CREATEOBJECT('ConnClass.ConnObj') && Create an object named (lcConn) >>>>>lcConnServer = lcConn + '.pServerName' && Set the connection object servername prop >>>>>&lcConnServer = TRIM(mytable.cserver) && Slowest oDSN_Data.pServerName now = mytable.cserver value >>>>> >>>>>or >>>>> >>>>>&lcConnServer..pServerName = TRIM(mytable.cserver) && oDSN_Data.pServerName now = mytable.cserver value >>>>> >>>>>or >>>>> >>>>>loControl = EVAL(lcConn) && Should be 2nd fastest to process >>>>>loControl.pServerName = TRIM(mytable.cserver) && oDSN_Data.pServerName now = mytable.cserver value >>>>> >>>>>or >>>>> >>>>>STORE TRIM(mytable.cserver) TO (lcConn+'.pcServer') && Should be fastest >>>>> >>>>>>>>>>
>>>>select cServer as pServername from myTable into cursor myServers nofilter >>>>oApp.AddProperty( "loConn["+ltrim(str(reccount()))+"]" ) >>>>scan >>>> oApp.loConn[ recno() ] = CREATEOBJECT('ConnClass.ConnObj') && Create an object >>>> oApp.loConn[ recno() ].pservername = trim(pServername) >>>>endscan >>>>Cetin