Вообще-то NewSky по-моему имел ввиду что-то типа этого:
Беда оказалась бедее, чем я думал.
[off-topic]Но моя задница чувствовала это заранее
[/off-topic]
Я про изображения совсем забыл, пока с пользовательскими полями разбирался. Звиняйте.
Проблема только в том, что если польз. полю никогда не присваивалось значения, то и записи для этого фильма в CUSTOM_VALUES_TYPE не будет и соответсвенно даже если у фильма нет постеров, значение установлено не будет.
Из этого ничего не понял... я один фильм руками пометил. Значит ли это, что теперь "полю присвоено значение" и имеются прочие отрибуты для того, что бы составить запрос и применить необходимые изменения?
И здесь моя мозга меня подвела.
Запрос сработает только для тех фильмов, у которых в этом поле уже что-нибудь есть. Если поле для какого-то фильма пустое, то оно так и останется пустым.
Тебя должно было бы спасти следующее:
INSERT INTO
CUSTOM_VALUES_SHORTSTR
("cmfid", "mid", "value")
SELECT
'36' as "cmfid", "mid", 'Нет Заглавного Постера' as "value"
FROM
MOVIES
WHERE
"mid" NOT IN (SELECT "mid" FROM CUSTOM_VALUES_SHORTSTR WHERE "cmfid" = '36') AND
"visible" = -1 AND
(NOT EXISTS(SELECT FIRST 1 * FROM IMAGES WHERE ("mid" = MOVIES."mid") AND ("imgtype" = 0)));
UPDATE
CUSTOM_VALUES_SHORTSTR
SET
"value" = 'Нет Заглавного Постера'
WHERE
("cmfid" = 36) AND
(NOT EXISTS(SELECT FIRST 1 * FROM IMAGES WHERE ("mid" = CUSTOM_VALUES_SHORTSTR."mid") AND ("imgtype" = 0)));
UPDATE
CUSTOM_VALUES_SHORTSTR
SET
"value" = ''
WHERE
("cmfid" = 36) AND
(EXISTS(SELECT FIRST 1 * FROM IMAGES WHERE ("mid" = CUSTOM_VALUES_SHORTSTR."mid") AND ("imgtype" = 0)));
Но не спасает. База обновляется, а программа этого почему-то не видит. Я не смог разобраться, в чем причина.
И тут у меня родилось предложение к nostra. Что если в программу добавить что-то вроде создания триггеров? Пользователь задаёт условия, например, как в расширенном поиске, и указывает, какое поле должно получить какое значение при выполнении или невыполнениии этих условий. Другой вопрос, многим ли это нужно?
ЗЫ: NewSky, бросай это дело, пока нас с ума не свёл