FIBPLUS. BLOB. SWAP. AND key field

Rangil
Дата: 17.06.2009 16:45:13
Почему когда я изменяю строку в запросе, находящемся в свойстве TpFIBDataset.SelectSQL
 ID,
на
 ID as RES_ID,
то перестают появляться файлы, кеширующие BLOB-поля.

Сам запрос:
SELECT
 ID,
 IMAGEINDEX,
 TRANSLATOR,
 FIRST_NAME,
 MIDDLE_NAME,
 LAST_NAME,
 FULL_NAME,
 LANGUAGE,
 AVATAR
FROM
    RDB$USER_PRIVILEGES
    inner join resource on resource.translator = RDB$USER_PRIVILEGES.RDB$USER
where
      (RDB$USER <> 'SYSDBA') and (RDB$USER <> 'PUBLIC')
  and (RDB$USER not in ( SELECT RDB$ROLE_NAME FROM RDB$ROLES ))
  and RDB$RELATION_NAME in ('TRANSLATOR','ADMINISTRATOR')

В статье приводятся пункты, когда кеширование не сработает

1. Таблица должна иметь первичный ключ.
2. Чтение BLOB-полей должна производиться компонентом TpFIBDataSet.
3. Приложение само должно следить за свободным местом на диске. В частности, такую функцию можно реализовать в обработчике события BeforeSaveBlobToSwap.

пп. 2 и 3 меня не смущают. А вот п. 1 - Таблица должна иметь первичный ключ, настораживает.

Я специально показал в запросе связку двух таблиц, чтобы было видно, что так тоже кешируются BLOB-поля. Но вот запрос к представлению этого соединения уже не кеширует их.
Я конечно могу обойтись и без представлений и название ключевого поля будет совпадать с оригинальным, но всё же...
В чём подвох?
Dimitry Sibiryakov
Дата: 17.06.2009 17:01:03

Rangil
В чём подвох?

В ФИБы телепатию ещё не встроили. Как они догадаются, что RES_ID это
первичный ключ?

Posted via ActualForum NNTP Server 1.4

Rangil
Дата: 17.06.2009 17:15:56
Dimitry Sibiryakov

Как они догадаются, что RES_ID это первичный ключ?

А как они догадываются, что ID - это первичный ключ? Это что ключевое слово такое?
Rangil
Дата: 17.06.2009 17:18:06
Rangil
Dimitry Sibiryakov

Как они догадаются, что RES_ID это первичный ключ?

А как они догадываются, что ID - это первичный ключ? Это что ключевое слово такое?


Я понимаю, что у меня в таблице в базе поле тоже ID. Нужно попробовать с другими именами.
Dimitry Sibiryakov
Дата: 17.06.2009 18:25:01

Rangil
А как они догадываются, что ID - это первичный ключ?

Копаясь в системных таблицах, вестимо.

Posted via ActualForum NNTP Server 1.4