Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2013, 17:12   #1
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию Запись CLOB данных через ODAC

Можно простой пример записи в CLOB-поле строки или числа? Перерыл инет, одна вода... Но также буду рад тыкнуться носом в ссылки, которые вы кините сюда

Вообще делаю так:
Код:
  LOraSQL:=TOraSQL.Create(nil);
  LOraSQL.Session:=TOraSession.Create(LOraSQL);
...//тут соединение с базой, все успешно
  LOraSQL.SQL.Text:='insert into test (info,binary) values (:i,:b)';
  LOraSQL.ParamByName('i').AsString:='3ds max';
  LOraSQL.ParamByName('b').ParamType:=ptInput;
  LOraSQL.ParamByName('b').AsOraClob.AsString:='is binary string format data exception';
  LOraSQL.Execute;
  LOraSQL.Session.Free;
  LOraSQL.Free;
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 16.07.2013, 18:41   #2
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

И правильно, что ничего нет. Момент сохранения CLOB прекрасно описан в справке, плюс имеется демка в Demo, идущая вместе с компонентами. Ищите да обрящете.
Код:
  quInsertRecord.ParamByName('Value').DataType := ftOraClob;
Vapaamies вне форума Ответить с цитированием
Старый 17.07.2013, 09:20   #3
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Добавил, все пишется. Но почему-то иногда возбуждается DB Internal Error, и все же запись происходит. Прочел, что после Execute вроде нужно вызывать метод WriteLob. Можете пояснить его смысл?
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 17.07.2013, 19:37   #4
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от 3D Hunter Посмотреть сообщение
Прочел, что после Execute вроде нужно вызывать метод WriteLob.
В общем случае сохранение LOB означает сохранение его локатора, а сам поток данных LOB должен передаваться отдельно. В некоторых случаях компоненты могут маскировать эту ситуацию каким-то умолчательным поведением, но, видимо, у них получается не всегда. Стало быть, справка не врет про WriteLob.
Vapaamies вне форума Ответить с цитированием
Старый 17.07.2013, 19:45   #5
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Более-менее разобрался... спасибо!
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ODAC for Delphi 7 baker Компоненты Delphi 0 14.04.2011 12:16
Чтение и запись данных в InterBase через Delphi Harikolo БД в Delphi 7 29.09.2010 22:46
Работа в ODAC Таптыгин Компоненты Delphi 0 30.04.2010 10:53
проблема с ODAC Shuster Общие вопросы C/C++ 0 23.03.2009 14:48
Help по Odac RaMMa БД в Delphi 6 12.05.2008 22:46