public T Get <T>(SqlDBCredentials credentials, SoftwareVersion version = null) { T retVal = default(T); CredentialLookup lkp; if (_credentialLookup.TryGetValue(typeof(T), out lkp)) { if (version == null) { version = new SoftwareVersion(); } String key = credentials.ToParsableString() + ";DBVER=" + version.ToString(); if (lkp.ContainsKey(key)) { retVal = (T)lkp[key]; } } return(retVal); }
public Object GetByType(Type t, SqlDBCredentials credentials, SoftwareVersion version = null) { Object retVal = null; CredentialLookup lkp; if (_credentialLookup.TryGetValue(t, out lkp)) { if (version == null) { version = new SoftwareVersion(); } String key = credentials.ToParsableString() + ";DBVER=" + version.ToString(); if (lkp.ContainsKey(key)) { retVal = lkp[key]; } } return(retVal); }
public static DBResult GetDatabaseVersion(SqlDBCredentials credentials, out SoftwareVersion version, out InternalDatabaseType databaseType) { DBResult retVal = new DBResult(DBResult.Result.Success); try { _databaseVersionLock.Lock(); version = null; databaseType = InternalDatabaseType.Unknown; String indexKey = credentials.ToParsableString(); if (!_databaseVersionLookup.TryGetValue(indexKey, out version)) { ISqlDataSource ds = SqlConnectionPool.Instance(credentials).GetDataSource(); DatabaseDataReader reader; QueryString sql = ds.FormatTrusted("SELECT * FROM I.seq where name in ('{0}', '{1}')", KEY_DB_TYPE, KEY_SCHEMA_VER); retVal = ds.Query(sql, out reader); if (retVal.ResultCode == DBResult.Result.Success && reader.HasRows) { while (reader.Read()) { String key = DBUtil.GetString(reader[COL_KEY]); if (key == KEY_SCHEMA_VER) { version = DBUtil.GetSoftwareVersion(reader[COL_VALUE]); } else if (key == KEY_DB_TYPE) { databaseType = (InternalDatabaseType)DBUtil.GetInt32(reader[COL_VALUE]); } } _databaseVersionLookup.Add(indexKey, version); } } } finally { _databaseVersionLock.Unlock(); } return(retVal); }
public T Set <T>(SqlDBCredentials credentials, SoftwareVersion version, T obj) { CredentialLookup lkp; if (!_credentialLookup.TryGetValue(typeof(T), out lkp)) { lkp = new CredentialLookup(); _credentialLookup.Add(typeof(T), lkp); } String key = credentials.ToParsableString() + ";DBVER=" + version.ToString(); if (lkp.ContainsKey(key)) { lkp[key] = obj; } else { lkp.Add(key, obj); } return(obj); }