Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.016 c
15-1193738004
infom
2007-10-30 12:53
2007.12.02
bat файл компиляции проекта


2-1194456145
NaRuTo
2007-11-07 20:22
2007.12.02
Как сделать так чтобы числа не повторялись.


2-1194371274
Nucer
2007-11-06 20:47
2007.12.02
Сервер TCP, потоки


2-1194433943
LexXL
2007-11-07 14:12
2007.12.02
вписать картинку в квадрат


3-1185611898
pohil
2007-07-28 12:38
2007.12.02
Формат даты




   Наверх