![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу толком записать в блоб поле картинку в оракл через ODAC [D6]
Relaxxx © (2004-08-30 17:23:00)Вернее могу, но только файлы очень маленького размера, 2кб, а мне нужно до 50. Вот как я делаю:
MyImgStream := TMemoryStream.Create;
SqlQ1.Close;
SqlQ1.SQL.Clear;
SqlQ1.SQL.Text:='INSERT INTO money.odac_blob(ID, title, Pic) '+
'VALUES(:parID_CL_OBJ,:parNM_CL_OBJ,:parIMG_BLOB)';
SqlQ1.Params.Items[0].DataType:=ftInteger;
SqlQ1.Params.Items[1].DataType:=ftString;
SqlQ1.Params.ParamByName('parIMG_BLOB').DataType:=ftGraphic;
SqlQ1.Params.Items[0].Value:=103;
SqlQ1.Params.Items[1].Value:='qwerty1';
if Image1.Picture.Bitmap.Empty=False then
begin
Image1.Picture.Graphic.SaveToStream(MyImgStream);
SqlQ1.Params.ParamByName('parIMG_BLOB').LoadFromStream(MyImgStream,ftBlob);
end;
SqlQ1.ExecSQL;
MyImgStream.Free;
Когда файл большой, даже 5 кб не хочет пишет ошибку
ORA-01461: допускается привязка LONG значения только для занесения в столбец LONG????
Неужели в BLOB нельзя записывать большие файлы???
З.Ы. У меня Оракл 8.0.5.0
Reindeer Moss Eater (2004-08-30 19:03:00) [1]Ты даун или где?
Ты можешь посмотреть текст для INSERT SQL в демо проекте?
ТЕКСТ ЗАПРОСА на вставку в таблицу в блоб поле.
Я тебе всю ветку про текст говорю. Про текст запроса в демке и про твой текст запроса.
Мне пофик работает ли демка у тебя или нет. И всем остальным пофик.
Твой текст insert неправильный.
В демке текст правильный.
Relaxxx (2004-08-30 18:54:00) [2]Я демопроект вдоль и впоперек просмотрел, не пашет у меня демка без Net, и что ее смотреть если она толком не работает, если б работала я уже давно б так и сделал!!! какая у тебя версия ОДАК
Reindeer Moss Eater (2004-08-30 18:34:00) [3]Мне текст SQL из демосов здесь опубликовать, или догадаешься его в демопроекте разглядеть?
Не работают так в Оракле с БЛОБ полями.
Сначала в поле надо вставить пустой блоб объект. Потом заселекстить его, получив локатор на него. И только потом что -либо писать в это поле используя локатор LOB.
Издеваетесь???
А что, нельзя?
Relaxxx (2004-08-30 18:30:00) [4]Издеваетесь???
Тогда какой синтаксис правельнеый?
Reindeer Moss Eater (2004-08-30 18:24:00) [5]В тексте INSERT запроса.
Еще шесть постов тому назад.
Relaxxx (2004-08-30 18:23:00) [6]Ладно, так в чем тогда проблема???
Reindeer Moss Eater (2004-08-30 18:22:00) [7]Еще раз для тех кто:
Опция NET здесь не виновата.
Relaxxx (2004-08-30 18:19:00) [8]Как раз-то и причем. Мне сама ODACовская демка когда я отключаю Net выдает ошибку ORA-01403 данных не найдено, а вот когда нет включен все работает. Может у меня плохая версия ODAC, у меня 4.0.5.1.8
Reindeer Moss Eater (2004-08-30 18:05:00) [9]Опция NET здесь не при чем.
Все работает и без нее.
Relaxxx (2004-08-30 18:03:00) [10]Ну а как вы тогда, посоветуете, я смотрел демку в ODAC, так там я могу записывать хоть метровые файлы, но какая-то фигнь, демка работает только когда ОДАК включена опция Net, а мне это не подходит
Reindeer Moss Eater (2004-08-30 17:59:00) [11]Тогда твой синтаксис INSERT никуда не годен.
Он не для полей BLOB.
Relaxxx (2004-08-30 17:55:00) [12]Помоему как раз для этого все и используют БЛОБ, а причем тут тип LONG я не догадываюсь, так как у меня тип поля BLOB!!!!!
Reindeer Moss Eater (2004-08-30 17:40:00) [13]Использовать адекватный тип данных. В первую очередь.
Reindeer Moss Eater (2004-08-30 17:38:00) [14]Тип LONG - устаревший тип данных для длинных строк.
Relaxxx (2004-08-30 17:38:00) [15]а что ж настроить то???
Falendysh (2004-08-30 17:37:00) [16]У меня была такая же проблема с MySQL. Надо просто настроить сервер БД - проблема там, а не в программе.