Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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 никогда не используй. Проблем не оберешся




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.04 c
6-272             vajo                  2002-01-22 08:36  2002.04.01  
eMail


3-59              Vks                   2002-03-07 10:46  2002.04.01  
Paradox при некорректном завершении теряет данные


3-71              Alexsys               2002-03-08 06:30  2002.04.01  
Как загрузить отчет из текстушки в Qreport?


14-319            MBo                   2002-02-12 14:20  2002.04.01  
что за значки в ответах вместо копирайта?


6-276             Sandro                2002-01-12 00:24  2002.04.01  
Как через сокеты передать звук в реальном времини