Конференция "Базы" » Загрузка рисунка из БД в TImage [D5, MSSQL]
 
  • KirillRepin © (12.09.08 16:50) [0]
    Подскажите пожалуйста, а загрузить из БД обратно в TImage как?
    как я понимаю это SaveToStream вот только немогу сформировать нормально код. Вот что делаю я:
    var
    s:TMemoryStream;
    begin
    s:=TMemoryStream.Create;
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Text := 'SELECT Pic FROM Tab_Pictures WHERE Id_Pictures = 4';

    Query1.ExecSQL;

    end;

    Что не так? и как правильно воткнуть и куда SaveToStream ?
  • Ega23 © (12.09.08 16:52) [1]
    TBLOBField(FieldByName('BLOBField')).SaveToStream()
  • Правильный$Вася (12.09.08 16:55) [2]

    > Query1.ExecSQL;

    Query.Open;
  • KirillRepin © (12.09.08 16:58) [3]

    > Ega23 ©   (12.09.08 16:52) [1]
    >
    > TBLOBField(FieldByName('BLOBField')).SaveToStream()

    извините но можно попросить примером кода, а то не понимаю как это применить.
  • stas © (12.09.08 16:59) [4]
    TBLOBField(FieldByName('BLOBField')).SaveToStream(S)
    где s TMemoryStream
  • Ega23 © (12.09.08 17:04) [5]

    > извините но можно попросить примером кода, а то не понимаю
    > как это применить.


    гм... Вообще-то это и есть пример кода. Если ты его не можешь понять - почитай хелп. Потом погугли. Не получится (понять) - найми программиста.
  • KirillRepin © (12.09.08 17:08) [6]

    > TBLOBField(FieldByName('BLOBField')).SaveToStream(S)
    > где s TMemoryStream

    непонятно как использовать TBLOBField, а (FieldByName('BLOBField')).SaveToStream(S)
    и s TMemoryStream это все понятно. если просто вставить строку
    TBLOBField(FieldByName('Pic')).SaveToStream(S) то она соответственно не работает
  • stas © (12.09.08 17:10) [7]
    Потом Image - LoadFromStream(S)
  • Правильный$Вася (12.09.08 17:16) [8]

    > она соответственно не работает

    че говрит?
    CreateBlobStream тоже можно
  • KirillRepin © (12.09.08 17:41) [9]
    Делаю так:
    var
     s:TMemoryStream;
    begin
     s:=TMemoryStream.Create;
     Query1.Close;
     Query1.SQL.Clear;
     Query1.SQL.Text := 'SELECT Pic_Name, Pic FROM Tab_Pictures WHERE Id_Pictures = 4';
     Query1.Open;
     (Query1.FieldByName('Pic') as TBlobField).SaveToStream(s);
     Image1.Picture.Bitmap.LoadFromStream(s);
     s.Free;
    end;

    в TImage ничего не появляется???
  • Ega23 © (12.09.08 17:44) [10]
    stream.position := 0;
  • KirillRepin © (12.09.08 17:57) [11]
    Сделал:
     (Query1.FieldByName('Pic') as TBlobField).SaveToStream(s);
     s.Position := 0;
     Image1.Picture.Bitmap.LoadFromStream(s);

    но почему то загружается черный квадрат, а не тот рисунок который грузился в БД???
  • Правильный$Вася (15.09.08 12:01) [12]
 
Конференция "Базы" » Загрузка рисунка из БД в TImage [D5, MSSQL]
Есть новые Нет новых   [134435   +34][b:0][p:0]