Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

Проблемы с загрузкой данных из потока   Найти похожие ветки 

 
iamkate ©   (2005-10-14 08:45) [0]

Я считываю картинку из Image в поток. Значение потока присваиваю строке buff. Значение строки
загружаю в LobLocator, связанный с blob-полем моей таблицы. И на этом моменте программа
зависает. А если в LobLocator загружать данные просто из файла, то все нормально.
Но мне нужно именно из потока.
Подскажите, как это сделать. Если можно - поподробнее.
Спасибо.

With OracleQuery do
 begin
    fs:= TMemoryStream.Create;  //Создаю поток
    image.Picture.Bitmap.SaveToStream(fs); //Считываю значение Image в поток
    fs.Seek(0, soFromBeginning);//Смещаюсь к началу потока
    SetLength(buff, fs.Size);//Устанавливаю длину строки buff равной длине потока
    fs.Write(buff[1], fs.Size);//Записываю в строку buff всю длину потока
    fs.Free;//Очищаю поток
    DeleteVariables;
    DeclareVariable("ID", otInteger);
    DeclareVariable("Photo", otBLOB);
    SQL.Clear;
    SQL.Add("BEGIN UPDATE_PHOTO(:ID, :Photo);END;");
    lobTmp := TLOBLocator.Create(qryBlob.Session, otblob);//Создаю LobLocator для работы с blob-ом
    SetVariable("ID", FKeyFieldValue);
    try
      SetComplexVariable("Photo", lobTmp);
      try
         Execute;
         lobTmp.AsString := Buff;//Загружаю в LobLocator значение строки buff
        // lobtmp.LoadFromFile("PhotoFile.bmp");
      except
          on E:Exception do
          MessageDlg(E.Message, mtError, [mbYes], 0);
       end;
    finally
      lobTmp.Free;
    end;
    OracleSession.Commit;
 end;


 
Johnmen ©   (2005-10-14 09:12) [1]

Тебе не надоело задавать одни и те же вопросы каждый день?
Ответов не понимаешь?

http://delphimaster.net/view/3-1129200122/
http://delphimaster.net/view/3-1129200122/


 
iamkate ©   (2005-10-14 09:42) [2]

Из базы в Image у меня все работает. А мне надо наоборот.
А в таком разрезе, между прочим, никто по существу не отвечал.


 
Johnmen ©   (2005-10-14 10:15) [3]

>А в таком разрезе, между прочим, никто по существу не отвечал.

Отвечали.
Просто всем уже надоело жевать одно и то же с завидной регулярностью для тех, кто не хочет искать, думать, просто жать F1 в конце концов...


 
ANB ©   (2005-10-14 10:25) [4]


>    lobTmp.AsString := Buff;//Загружаю в LobLocator значение
> строки buff

- вот так делать не надо. Грузи сразу из потока. Тебе же уже писали. И кода меньше. Поток не забудь перемотать на начало.


 
iamkate ©   (2005-10-14 12:55) [5]

Да перестаньте же мучать меня и себя! Скажите толком, как грузить сразу из потока и в какое место кода это вставить?!
Ведь нет же LobLocator.LoadfromStream. Как же это сделать?
Я не развлекаюсь, я действительно не знаю как и нигде не могу этого найти!


 
ANB ©   (2005-10-14 14:33) [6]


>  fs.Write(buff[1], fs.Size);//Записываю в строку buff всю
> длину потока
- кто тебе сказал, что здесь ты пишешь в строку ? Хелп глянь, это запись в поток (мусора)



Страницы: 1 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
3-1129306926
suharew
2005-10-14 20:22
2005.11.27
Trim в IBX


14-1131347851
Rouse_
2005-11-07 10:17
2005.11.27
Кто меня искал?


3-1129111830
iamkate
2005-10-12 14:10
2005.11.27
Проблема с Update blob-поля


14-1131356879
_Sergey_
2005-11-07 12:47
2005.11.27
Delphi: Лицезия кончилась!


14-1130828683
Keni
2005-11-01 10:04
2005.11.27
Создание проги для КПК