Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.046 c
15-1193238690
Рекрутер
2007-10-24 19:11
2007.12.02
Программист-пенсионер - кто он?


2-1194419913
Aragorn
2007-11-07 10:18
2007.12.02
TMainMenu ShortCut


3-1184763707
tiktak
2007-07-18 17:01
2007.12.02
Преимущества создания баз данных при помощи MS Access и Delphi


2-1194629978
IOrist
2007-11-09 20:39
2007.12.02
Как прогу убрать в фоновый режим


2-1194430383
allucard
2007-11-07 13:13
2007.12.02
Помогите по компоненту TComPort





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский