Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.043 c
1-1131005871
den_777
2005-11-03 11:17
2005.11.27
Как узнать является ли класс потокобезопасным или нет


14-1130868063
Bogdan1024
2005-11-01 21:01
2005.11.27
Помогите собрать комп!!!


6-1124244431
Гриха
2005-08-17 06:07
2005.11.27
TServerSocket и TClientSocket в Delphi 6 и 7


1-1130705369
ArchValentin
2005-10-30 23:49
2005.11.27
Прозрачный TEdit


6-1124020298
Asail
2005-08-14 15:51
2005.11.27
проблема с idHTTP




   Наверх