private static void ProcessConnectionCapabilities(FdoIConnection conn) { using (var caps = conn.GetConnectionCapabilities()) { Log("Connection Capabilities"); int jtypes = caps.GetJoinTypes(); Log("\tJoinTypes:"); foreach (FdoJoinType jt in Enum.GetValues(typeof(FdoJoinType))) { Log("\t\t{0} - {1}", jt, ((jtypes & (int)jt) == (int)jt)); } Log("\tThreadCapability: {0}", caps.GetThreadCapability()); var ltypes = caps.SupportedLockTypes(); Log("\tSupportedLockTypes:"); for (int i = 0; i < ltypes.Count; i++) { Log("\t\t{0}", ltypes.GetItem(i)); } var sceTypes = caps.SupportedSpatialContextExtentTypes(); Log("\tSupportedSpatialContextExtentTypes:"); for (int i = 0; i < sceTypes.Count; i++) { Log("\t\t{0}", sceTypes.GetItem(i)); } Log("\tSupportsConfiguration: {0}", caps.SupportsConfiguration()); Log("\tSupportsCSysWKTFromCSysName: {0}", caps.SupportsCSysWKTFromCSysName()); Log("\tSupportsFlush: {0}", caps.SupportsFlush()); Log("\tSupportsJoins: {0}", caps.SupportsJoins()); Log("\tSupportsLocking: {0}", caps.SupportsLocking()); Log("\tSupportsLongTransactions: {0}", caps.SupportsLongTransactions()); Log("\tSupportsMultipleSpatialContexts: {0}", caps.SupportsMultipleSpatialContexts()); Log("\tSupportsMultiUserWrite: {0}", caps.SupportsMultiUserWrite()); Log("\tSupportsSavePoint: {0}", caps.SupportsSavePoint()); Log("\tSupportsSQL: {0}", caps.SupportsSQL()); Log("\tSupportsSubSelects: {0}", caps.SupportsSubSelects()); Log("\tSupportsTimeout: {0}", caps.SupportsTimeout()); Log("\tSupportsTransactions: {0}", caps.SupportsTransactions()); Log("\tSupportsWrite: {0}", caps.SupportsWrite()); } }