Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

FireBird BLOB   Найти похожие ветки 

 
Zabludshiy   (2007-07-16 16:58) [0]

Доброго времени суток. Помогите плс. Не получается изменить блоб. На форме IBDatabase, к нему подключен IBDataset и IBSQL. В таблице (firebird) есть поле типа BLOB. При попытке изменить его (там только текст должен быть) делаю следующим образом:

...
   IBDS1.Edit;
   IBDS1MEMO.Value:=str;
   IBDS1.Post;
...

Пишет "Cannot modify a read-only dataset".
Само поле - не read only, в IBDataset не нашел даже такого свойства. Другие поля (не блобы) изменяю легко через IBSQL,

Может туплю, подскажите как бороться или ссылку на внятную статью/книгу про работу с блобами IB/FB в delphi.

Delphi 6, FireBird


 
Desdechado ©   (2007-07-16 17:01) [1]

UPDATE tbl SET blb = :prm WHERE id = :x

и читать справку Modifying read-only datasets


 
Zabludshiy   (2007-07-16 18:39) [2]

Через update, как я понимаю, не получится передать строку больше 32к, в принципе я так и делаю, но не уверен, что со временем этого не будет мало...


 
engine ©   (2007-07-16 18:43) [3]

> [2] Zabludshiy   (16.07.07 18:39)

не правильно ты всё понимаешь.


 
Zabludshiy   (2007-07-16 18:58) [4]

Дык почему тогда когда выполняется такой код

   IBSQL1.Close;
   IBSQL1.SQL.Clear;
   IBSQL1.SQL.Add("update ORGANIZATIONS set ");
   IBSQL1.SQL.Add("MEMO = """+str+""" ");
   IBSQL1.SQL.Add("where ORG_ID = "+IBDS1.fieldbyname("ORG_ID").AsString );
   IBSQL1.ExecQuery;
   IBDS1.Close;
   IBDS1.Open;

и размер строки str около 100К вываливается ошибка, а если размер около 10К - всё нормально записывается?


 
engine ©   (2007-07-16 19:06) [5]

> [4] Zabludshiy   (16.07.07 18:58)

А при чем здесь блоб?


 
Zabludshiy   (2007-07-16 19:07) [6]

MEMO - это и есть блоб.


 
engine ©   (2007-07-16 19:12) [7]

> [6] Zabludshiy   (16.07.07 19:07)

То, что тебе написали в [1] и то, что ты написал в [4] совершенно разные вещи.
Используй параметры.


 
Zabludshiy   (2007-07-16 19:16) [8]

Пробовал несколькими способами записывать этот блоб, так как написано
в Zabludshiy   (16.07.07 16:58);
потом через IBDS1MEMO.loadfromstream;
получилось только так как Zabludshiy   (16.07.07 18:58) [4],
но я так понимаю что это не совсем правильно.
Я хочу понять, почему не работает [1]


 
engine ©   (2007-07-16 19:18) [9]

> [8] Zabludshiy   (16.07.07 19:16)
> Я хочу понять, почему не работает [1]

Ну у меня нет оснований полагать, что [1] не работает.
В моих проектах отлично работает.


 
Zabludshiy   (2007-07-16 19:22) [10]

Вот и я подозреваю, что где-то что-то в свойствах нето... Спасибо, будем разбираться.


 
Zabludshiy   (2007-07-16 19:25) [11]

Заработало. Спасибо всем за помощъ!



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
4-1179585869
alex1961
2007-05-19 18:44
2007.12.02
Windows server 2003 setvice pack 2


15-1194322708
Slider007
2007-11-06 07:18
2007.12.02
С днем рождения ! 6 ноября 2007 вторник


2-1194514597
Квэнди
2007-11-08 12:36
2007.12.02
Странное отображение форм


2-1194606611
DontFire
2007-11-09 14:10
2007.12.02
Как вставить сепаратор в mainmenu?


15-1194249314
Галинка
2007-11-05 10:55
2007.12.02
Указатель на функцию в Си