private static byte[] GetDatabaseBinaryAttribute(string id, DbBinaryConfig dbBinaryConfig) { IDMLIdentifiers identifiers = null; IDatabaseAccessProvider dbAccessProvider; if (string.IsNullOrEmpty(dbBinaryConfig.DBConnection)) { dbAccessProvider = DatabaseAccess.ForCurrentDatabase; identifiers = DatabaseAccess.ForCurrentDatabase.DatabaseServices.DMLService.Identifiers; } else { dbAccessProvider = DatabaseAccess.ForDBConnection(dbBinaryConfig.DBConnection); identifiers = DatabaseAccess.ForDBConnection(dbBinaryConfig.DBConnection).DatabaseServices.DMLService.Identifiers; } string selectSQL = "SELECT " + identifiers.EscapeIdentifier(dbBinaryConfig.Attribute.ToUpper()) + " FROM " + dbBinaryConfig.EntityGetter(null, BuiltInFunction.GetCurrentLocale()) + " WHERE " + identifiers.EscapeIdentifier(dbBinaryConfig.Id.ToUpper()) + " = "; if (dbBinaryConfig.IsAlphaId) { selectSQL += "'" + BuiltInFunction.EncodeSql(id) + "'"; } else { selectSQL += BuiltInFunction.EncodeSql(id); } return(GetBinaryFromDb(selectSQL, dbBinaryConfig.Attribute, dbAccessProvider)); }
private static byte[] GetDatabaseBinaryAttribute(string id, DbBinaryConfig dbBinaryConfig) { IDMLIdentifiers identifiers = null; IDatabaseAccessProvider dbAccessProvider; if (string.IsNullOrEmpty(dbBinaryConfig.DBConnection)) { dbAccessProvider = DatabaseAccess.ForCurrentDatabase; identifiers = dbAccessProvider.DatabaseServices.DMLService.Identifiers; } else { dbAccessProvider = DatabaseAccess.ForDBConnection(dbBinaryConfig.DBConnection); identifiers = dbAccessProvider.DatabaseServices.DMLService.Identifiers; } using (Transaction trans = dbAccessProvider.GetReadOnlyTransaction()) { try { using (Command cmd = trans.CreateCommand( "SELECT " + identifiers.EscapeIdentifier(dbBinaryConfig.Attribute.ToUpper()) + " FROM " + dbBinaryConfig.EntityGetter(null, BuiltInFunction.GetCurrentLocale()) + " WHERE " + identifiers.EscapeIdentifier(dbBinaryConfig.Id.ToUpper()) + " = @ID")) { cmd.CreateParameter("@ID", (DbType)dbBinaryConfig.IdDbType, id); using (IDataReader reader = cmd.ExecuteReader()) { if ((reader.IsClosed) || (!reader.Read())) { return(null); } return(ReadBytes(reader, dbBinaryConfig.Attribute)); } } } catch (Exception) { return(null); } } }