Главная страница
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.028 c
11-1179477505
=BuckLr=
2007-05-18 12:38
2007.12.02
Вопрос по consoleOut


15-1194176020
Evanescence
2007-11-04 14:33
2007.12.02
С жестким диском проблемы


15-1194132647
Multy
2007-11-04 02:30
2007.12.02
InterBase, Delphi 7.0 и Vista


15-1193973030
Slider007
2007-11-02 06:10
2007.12.02
С днем рождения ! 2 ноября 2007 пятница


15-1193771493
ProgRAMmer Dimonych
2007-10-30 22:11
2007.12.02
Подкиньте, плз, идейку