![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| j_kat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Использую компонент TRxDbRichEdit.Пишу текст и загружаю картинки(.JPG) извне.В БД создано поле формата IMage.
Доступ через BDE.Использую TQuery,TDataSource Попытка сохранить (Post) в этом поле просто текста идет на ура,а вот с картинкой ничего не выходит.Сообщение: Invalid BLOB length. Понимаю что так прямолинейно сохранить BLOB нельзя,но не могу найти механизм как это сделать. Подскажите,пожалуйста. var Stream1, Stream2 : TBlobStream; begin {Dv- TDataSource} Dv.DataSet.Edit; {FieldByName('VV')-поле,куда хочу сделать запись} Stream2 := Dv.DataSet.CreateBlobStream(Dv.DataSet.FieldByName('VV'), bmReadWrite); Ошибка: Incompatible types TBlobStream TStream end; Дальше и двинуться не могу |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
почитай статьи
1."Загрузка изображений в Blob-поля" 2. "Извлечение изображения из BLOB-поля" 3. "Запись потока в BLOB-поле" 4. "Приёмы работы с BLOB (OLE/Memo) полями" из DRKB Это сообщение отредактировал(а) Rodman - 27.8.2007, 14:17 |
|||
|
||||
| j_kat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Спасибо.Все прочитала. procedure TForm1.Button1Click(Sender: TObject); begin TRxDBRichEdit.Lines.SaveToFile('c:\spline\ww1.rtf'); if not (Qv.State in [dsInsert, dsEdit]) then Qv.Edit; (Dv.DataSet.fieldbyname('VV') as TBlobField).LoadFromFile('c:\spline\ww1.rtf'); Qv.Post; ---На Post идет ошибка Invalid BLOB length----- Если в файле только текст,то ошибка не возникает,а если текст и картинка,то идет ошибка. Что я делаю неправильно? end; |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
j_kat, какая СУБД. и весь текст для теста можно увидеть?
ЗЫ: подсвечивай код (для этого кнопка код)... |
|||
|
||||
| j_kat |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Rodman,спасибо вам большое,что возитесь со мной.Я вам очень признательна.
СУДБ у нас Microsoft SQL.Доступ через BDE.Использую TQuery,TDataSource.В БД создана таблица из двух полей(пока для отладки),одно поле с номером записи(пока ставлю 1),второе поле IMage. На форму (Делфи5) кладу компонент TRxDbRichEdit (имя Editor) и строку меню для выкладывания на форму рисунков с расширением,например,JPG
И кнопку для сохранения.
Где Qv - TQuery("select * from test_vv where KOD=1") Dv-TDataSource Если я что-то опять упустила,вы подскажите,пожалуйста.Я уже столько всего начиталась,аж в глазах рябит,а ясности пока нет. Это сообщение отредактировал(а) j_kat - 28.8.2007, 12:23 |
||||
|
|||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
блин и проэмулировать не могу... слушай, а обязательно блобы кидать??? может проще будет в Base64 конвертнуть и записать и при чтении наоборот...
Потому как я проверить то что ты делаешь не могу... |
|||
|
||||
| j_kat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
С конвертацией погожу.Хочу еще помучиться
А если я вопрос упрощу.И будет он такой. Исходные данные: 1.MS SQL 2.BDE 3.Поле в БД определено как Image 3. TQuery,TDataSource 4.Любой RTF файл с картинкой и текстом в любом месте. Как это файл записать в поле базы? |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
что то не понял... ты в Image хошь кроме картинки еще че то загнать?! мне кажется тебе поле типа TEXT надо и туда твой поток записывать!!! ЗЫ: два третих пункта!!! |
|||
|
||||
| j_kat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Rodman,ты будешь долго смеяться,но я нашла в чем дело и это оказалось настолько просто,что даже стыдно сознаваться.Надо было в BDE изменить размер BLOB SIZE.И все пошло как по маслу.
Утешаю себя тем что глупость человеческая не знает пределов,а знания лишними не бывают. СПАСИБО. Это сообщение отредактировал(а) j_kat - 30.8.2007, 07:29 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |