Форум: "Базы";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
ВнизЛЮДИ, помогите. Такая ошибка... я ничего не понимаю Найти похожие ветки
← →
Malder (2002-03-08 14:37) [0]Постараюсь рассказать все подробно.
Есть таблица Table. Метаданные:
CREATE TABLE Table
(
MANAGER CHAR(10) CHARACTER SET WIN1251 NOT NULL,
TELEFON CHAR(16) CHARACTER SET WIN1251 NOT NULL,
FAX CHAR(16) CHARACTER SET WIN1251,
NAZVANIE CHAR(30) CHARACTER SET WIN1251,
DATEPEREZVON TIMESTAMP,
PRIMECH BLOB SUB_TYPE 0 SEGMENT SIZE 80
);
Для этой таблицы можно сделать такую SQL комманду:
UPDATE Table SET Fax="222" WHERE Telefon="111"
Соответственно, у записей у которых Telefon="111" проставиться Fax="222". Это ясно.
Существует View этой таблицы:
CREATE VIEW MANAGER (
MANAGER,
TELEFON,
FAX,
NAZVANIE,
DATEPEREZVON,
PRIMECH
) AS
Select Manager, telefon, fax, Nazvanie, Dateperezvon, Primech from Table
Where Manager = User
Если же для этой таблицы сделать:
UPDATE Manager SET Fax="222" WHERE Telefon="111"
то ошибка !
Feature is not supported
BLOB and array data types are not supported for compare operation
Statement: UPDATE Manager_view SET Fax="67" WHERE Telefon="111"
Чего там не поддерживается ? НЕ понимаю. Причем, если записи с Telefon="111" нету. то ошибки нету...
блин. Если кто-нибудь что-нибудь понял - поможите
← →
Delirium (2002-03-08 14:53) [1]Попробуй исключить из view поле Primech
← →
Johnmen (2002-03-09 02:51) [2]Вообще говоря, это весьма странно...
Для начала обшие советы:
1. Не употребляй для имен своих объектов (таблицы, поля, триггеры и т.д.) слова, совпадающие с используемыми в синтаксисе БД !
[..CREATE TABLE Table... не делай так !!!!!!!!]
2. Кодовую страницу для символьных полей задай при создании БД !
[...CHARACTER SET WIN1251...не делай так для каждого поля !]
P.S. Лично я никогда не задавал CHARACTER SET при создании БД,
(т.е.использовал Default) и все нормально !
← →
Malder (2002-03-09 13:53) [3]Delirium, да, когда я убрал из обзора Primech все заработало. Но я не могу обойтись без этого поля. А также не могу обойтись без обзора, так как только таким способом могу обеспечить должную секретность. Как же менять тогда Primech ?
Johnmen, таблица на самом деле называется не Table, а Clients - так что здесь все ОК.
А кодовую страницу я как раз задавал при создании БД. Просто в метаданных интербэйс приписывает к каждому полю CHARACTER SET.
Только дело то не в этом...
← →
Malder (2002-03-09 21:51) [4]Блин. Почему в View нельзя Blob использовать ?
← →
drpass (2002-03-10 01:13) [5]Видимо, это особенность внутренней реализации Interbase - при проверке новой записи в обновляемом наборе на соответствие условиям она пытается проверить также и blob-поля - и получает облом.
Я не знаток тонкостей ее работы, но у тебя что хранится в примечании? Может, заменить его на текстовое поле, что-то вроде varchar(255)?
← →
Ray Adams (2002-03-10 01:57) [6]А зачем тебе блоб??? VARCHAR до 40 килобайт кажись поддерживается в IB 6.0 Так что без блобиков можно работать. А character set никогда не используй. Проблем не оберешся
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c