Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
ВнизНевозможность использовать Update, если в View есть поле типа Blob Найти похожие ветки
← →
Malder (2002-03-10 12:58) [0]То есть, если для таблицы в которой есть Blob поле, сделать Обзор (View) в котором включить это Blob поле из таблицы, то для данного обзора нельзя будет сделать SQL комманду UPDATE. Почему ?
Я не хочу использовать большой Varchar. Неужели, никто не сталкивался с этой проблемой ? Ведь навернякак у вас в Обзоре была необходимость включать Blob поле.
← →
roottim (2002-03-11 09:06) [1]непонятно!.. если вид создается из нескольких таблиц... то как это вообще возможно... вроде никак!
а если на основе одной таблицы... то какой смысл делать апдейт вида.. если такое можно сотворить с таблицей!
← →
Malder (2002-03-11 09:54) [2]Обзор составляется из одной таблицы. А смысл в том, что в обзор можно включить не все записи. И раздавать гранты на обзор.
С оригинальной таблицей такого не проделаешь...
← →
roottim (2002-03-11 10:00) [3]возможно просто нельзя!....
это дб написано в гуиде по иб!... то что там существуют ограничения по использованию видов... это однозначно... возможно работа с блоб оно и есть!...
посмотри хелп!... по View.... наерняка что-то сказано по этому поводу!
← →
Malder (2002-03-11 17:18) [4]A view is updatable if:
It is a subset of a single table or another updatable view.
All base table columns excluded from the view definition allow NULL values.
The view"s SELECT statement does not contain subqueries, a DISTINCT predicate, a HAVING clause, aggregate functions, joined tables, user-defined functions, or stored procedures.
If the view definition does not meet these conditions, it is considered read-only.
Note Read-only views can be updated by using a combination of user-defined referential constraints, triggers, and unique indexes.
вроде здесь нет противоречий с использованием Blob...
← →
panov (2002-03-11 18:41) [5]А каким образом ты UPDATE выполняешь?
Приведи код SQL.
Скорее всего, тебе нужно использовать параметризованный запрос с соответствующим типом параметра(TBlobField).
← →
Malder (2002-03-11 21:16) [6]Нет, параметры не работают.
Дело в том, что невозможно выполнить даже простейший SQL оператор, типа:
UPDATE Clients SET Telefon="12345" Where Fax="6789"
То есть, в запросе даже не обновляется BLOB ! Просто принципиально программа не работает, если в обзоре есть Blob поле. Я ВООБЩЕ не понимаю, зачем это... такое ограничение сводит на ноль возможность использования Blob - это поле в более менее серьезной базе не может быть использовано....... ОЧЕНЬ СТРАННО
P.S. Народ, если у вас Blob поля в обзорах (view) работают - скажите, может дело в чем-то другом...
← →
Malder (2002-03-12 15:11) [7]ну ответьте кто-нибудь... Я НЕ ВЕРЮ ЧТО НИКТО НЕ ИСПОЛЬЗУЕТ BLOB В ОБЗОРАХ
← →
Scalia (2002-03-12 15:33) [8]А почему надо делать UPDATE обзора, а не таблицы ?
Какой в этом глубокий смысл ?
← →
ОлегЕ (2002-03-12 15:52) [9]Сделал view с полем Blob, как у тебя описано.
Все обновляется, никаких ошибок. Может ты что-то не договариваешь?
← →
Malder (2002-03-12 17:19) [10]Scalia</b<, блин. Смысл во многом:
Create View manager_view as
Select Manager, telefon, fax, Nazvanie, Mestop, Dateperezvon, Primech from Pers
Where Manager = User
With Check Option - именно из-за этого я использую обзор, так как текущий пользователь имеет доступ не ко всем полям ! А с оригинальной таблицей так сделать не могу...
ОлегЕ, ты пытался делать UPDATE таблицы исходной или обзора ? Может ошибся ? Апдейт самой таблицы и у меня действует. Попробуй, пожалуйста, обновить обзор, причем надо чтобы под условие апдейта попадала хоть одна запись. То есть, если сделать:
UPDATE Clients SET telefon="123" Where Fax="789"
и нету клиентов с факсом 789 то все Ок. Надо чтобы UPDATE попытался изменить хоть одну запись...
← →
ОлегЕ (2002-03-12 17:27) [11]Я делал
update vw_table1 set id=11 where id = 1
где:
1. vw_table1 -
CREATE VIEW VW_TABLE1(
ID,
FD)
AS
select
ID,
FD
from TABLE1;
2. TABLE1 -
CREATE TABLE TABLE1 (
ID "DInteger" NOT NULL,
FD "DBlob");
3. DBlob -
CREATE DOMAIN "DBlob" AS
BLOB SUB_TYPE 0 SEGMENT SIZE 100 CHARACTER SET NONE
Никаких ошибок и проблем, все работает нормально.
← →
Scalia (2002-03-12 17:28) [12]А что есть Clients - вроде бы не имя таблицы и не имя view...???
← →
Malder (2002-03-12 17:35) [13]Scalia, ну Pers - это и есть Clients
ОлегЕ, в общем все верно. Только вот я не создавал Domain Dblob.
Я использовал просто FD типа blob.
Правда не думаю, что в этом дело. А в твоем случае SIZE 100 сводит на ноль усилия. Я не знаю размер поля, даже приблизительно, поэтому и использую Блоб. А так можно и varchar использовать...
← →
ОлегЕ (2002-03-12 17:52) [14]Длина сегмента - это не размер поля. Здесь ты заблуждаешься, если думаешь, что только 100 байт можно хранить. На ib.demo.ru есть неплохая статья о CHAR, VARCHR и BLOB, почитай, не помешает.
Пришли на sep@ukrsib.kharkov.com свой адрес, завтра вышлю пример базы, сам попробуй.
← →
Scalia (2002-03-12 17:54) [15]>Malder © : А Pers - это таблица ! То есть UPDATE все-таки таблицы !?
← →
Malder (2002-03-12 19:57) [16]Scalia, не. Clients - это Обзор. А Pers - сама база =)
← →
Malder (2002-03-13 00:11) [17]народ... плиз... я последний раз поднимаю топик...ну неужели вы не используете Блоб в обзорах ? не верится.. кто нибудь писал рабочие базы ? неужели вы не встречались с этой ошибкой ? ну хоть скажите, что так оно и есть, что Interbase - такая лажа.. пеерйду на MSQL я....с горя...
а-а-а.....
← →
drpass (2002-03-13 00:52) [18]Не надо, парень, не надо...
Завтра я утром на работе сяду и посмотрю, чего там у тебя может не работать. Только не становись еще одним пользователем СУБД от Microsoft
← →
Malder (2002-03-13 18:51) [19]ты в меня вселил надежду =)
← →
Malder (2002-03-14 20:53) [20]просто так пишу =)
← →
Slava (2002-03-15 06:46) [21]Создал тестовую табличку и обзор с блобом.
Сначала понаделал insert"ов в обзор, потом
update"ов (тоже в обзор) - все работает без вопросов
← →
Александр С.. (2002-03-15 11:57) [22]В принципе любой View можно сделать обновляемым, если создать для него триггеры.
Пробовал делать View принципиально не обновляемый (из нескольких таблиц) с триггерами, и все работало прекрасно.
Может такой вариант поможет.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.005 c