>LOCAL oSQLDMO AS SQLDMO.SQLserver >LOCAL oNames AS SQLDMO.NameList >oSQLDMO = CREATEOBJECT("SQLDMO.SQLserver") >oNames = oSQLDMO.APPLICATION.ListAvailableSQLServers() >FOR ix=1 TO oNames.COUNT > ? oNames.ITEM[ix] >ENDFOR >Peter,
Local oSQLDMO2 as SQLDMO.SQLserver2,; oSQLDMO As SQLDMO.SQLserver,; oSG As SQLDMO.ServerGroup,; oSrv As SQLDMO.RegisteredServer ** get installed instances oSQLDMO2 = Createobject("SQLDMO.SQLserver2") oNames2 = oSQLDMO2.ListInstalledInstances() For ix=1 To oNames2.Count ? oNames2.Item[ix] Endfor ? '***************' *** Get registered servers oSQLDMO = Createobject("SQLDMO.SQLserver") ? 'SQL server groups count:', oSQLDMO.Application.ServerGroups.Count For Each oSG In oSQLDMO.Application.ServerGroups ? Textmerge('SQL server group name:[<<oSG.Name>>] have <<oSG.RegisteredServers.Count>> registered servers') For Each oSrv In oSG.RegisteredServers ? oSrv.Name Endfor EndforPS: MS documented that SQLDMO (and probably the APIs it uses) would be dropped in future SQL server versions. SQL SMO is the way to go but I don't know if there is a way to use it from VFP.