Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
                }
            }
        }