Главная страница
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.036 c
9-1121586869
Conferno
2005-07-17 11:54
2005.11.27
Пример с ZShadows (GLScene)


3-1129119063
ch_victor
2005-10-12 16:11
2005.11.27
TDataSetProvider + Win98


1-1130928645
Maverick
2005-11-02 13:50
2005.11.27
Фрейм - не отображаются контролы


14-1131007741
DiamondShark
2005-11-03 11:49
2005.11.27
Есть ли утилита?


1-1130764690
Zelius
2005-10-31 16:18
2005.11.27
CustomDraw в TListView