Конференция "Начинающим" » Вставка изображения в BLOB поле [D7]
 
  • Evgeney (13.10.10 11:12) [0]
    Добрый день, есть query и image с загруженным в него изображением bmp. Подскажите как через query записать картинку в blob поле, спасибо...
  • Плохиш © (13.10.10 11:55) [1]
    Что в справке не понятно?
  • Evgeney (13.10.10 12:01) [2]
    где в справке? я уже 3 день бьюсь не получается
  • Плохиш © (13.10.10 12:05) [3]
    Пожалуйста

    TBlobField wird für ein Feld in einer Datenmenge verwendet, das eine Referenz auf ein BLOB enthält.

    Unit

    DB

    Beschreibung

    TBlobField kapselt das fundamentale Verhalten von BLOB-Feldern (Binary Large Object). BLOB-Felder sind Datenbankfelder, die binäre Daten in beliebiger Länge enthalten können. BLOB-Feldkomponenten können unterschiedliche Datentypen von beliebiger Länge repräsentieren. Der jeweilige Datentyp wird im Header der binären Daten angegeben.

    Neben den direkt unterstützten Feldtypen ist TBlobField der direkte Vorfahr zweier BLOB-Feldkomponenten: TMemoField (ftMemo) und TGraphicField (ftGraphic). Diese abgeleiteten Klassen werden für BLOB-Felder mit für Memo- bzw. Grafikdaten typischen Headern verwendet.

    TBlobField führt neue Methoden ein, um Daten im BLOB-Feld in einen Stream zu stellen. Außerdem sind Methoden zum Kopieren von Binärdaten zwischen dem BLOB-Feld und einer Binärdatei implementiert. Mit dem von der Methode CreateBlobStream der Datenmenge zurückgegebenen Stream können auch von einem BLOB-Feld verwalteten Daten gelesen oder geschrieben werden.

    Wenn Sie während des Entwurfs mithilfe des Felder-Editors eine persistente Feldkomponente für das BLOB-Feld erstellen, können Sie es zur Laufzeit über seinen Namen ansprechen. Verwenden Sie dynamische Feldomponenten, so haben Sie über die Eigenschaft Fields oder die Methode FieldByName der Datenmenge Zugriff auf die TBlobField-Instanz.


    PS. В описаниях методов даже желаемый код дан.
  • Evgeney (13.10.10 12:19) [4]
    var
     MS: TMemoryStream;
    begin
     if not (ClientDataSet1.State in [dsInsert, dsEdit]) then
       ClientDataSet1.Insert;
     MS := TMemoryStream.Create();
     try
       Image1.Picture.Bitmap.SaveToStream(MS);
       ClientDataSet1Images.LoadFromStream(MS);
     finally
       MS.Free;
     end;
     ClientDataSet1.Post;
    end;



    ошибка ClientDataSet1Images не определен? Что это?
  • Evgeney (13.10.10 12:26) [5]
    ну пасиб и на этом, буду дальше искать... ничего не получилось
  • Плохиш © (13.10.10 12:34) [6]

    > ошибка ClientDataSet1Images не определен? Что это?

    Это говорят, что надо нанять программиста.
  • Evgeney (13.10.10 12:43) [7]
    Блин вот нормально нельзя сказать, сразу программиста...
  • sniknik © (13.10.10 13:01) [8]
    > Блин вот нормально нельзя сказать
    в самой ошибке нормально - не определен. т.е. переменной нет, либо вне области видимости.

    p.s. вообще вопрос "Что это?" после такой ошибки это типа - "говорят 2+2=4, почему?"
    поэтому и "сразу программиста...".
  • Evgeney (13.10.10 13:07) [9]
    пример был взят из хелпа, есть компонент ClientDataSet1 а метод ClientDataSet1Images нигде не описан, если все такие грамотные взяли бы да подсказали...
  • Сергей М. © (13.10.10 13:34) [10]
    > а метод ClientDataSet1Images нигде не описан

    А это не метод.
    Это поле класса формы, на которую ты шлепнул компонент ClientDataSet1
    И появилось это поле услужливыми стараниями IDE, когда в ClientDataSet1 добавили поле Image
  • sniknik © (13.10.10 14:11) [11]
    > если все такие грамотные взяли бы да подсказали...
    в этом и проблема, нечего подсказывать, т.к. это не что-то общеизвестное и проблемное, это твоя некомпетентность, про которую ты умолчал... вот было бы описание, что это пример из хелпа, что ты сделал только копирование, что .... короче все, что делал, вот тогда бы можно было подсказать, что "вот тут" сделано не так, не правильно, надо по другому.
    но у тебя то вопрос в общем, про вставку, там проблем нет, действуешь по хелпу и все работает. проблема в твоей интерпретации.

    > И появилось это поле услужливыми стараниями IDE
    вернее, не появилось... судя по "вышеобсуждаемому".
  • stas © (13.10.10 17:19) [12]
    Evgeney   (13.10.10 12:19) [4]

    Ты все сделал правильно (или скопировал), теперь осталось выяснить 2 вопроса:

    1. как называется твой dataset, который содержит Blob поле?
    2. Как называется это самое Blob поле
  • Evgeney (14.10.10 09:07) [13]
    Вот, может кому пригодиться...

    Query.Active:=False;
    Query.SQL.Text:='update table set `photography`=:photo where `id`=''1''';
    Query.Params.ParamByName('photo').LoadFromFile('file.bmp',ftGraphic);
    Query.ExecSQL;



    вот. Тема закрыта.
  • Плохиш © (14.10.10 10:48) [14]

    > Evgeney   (14.10.10 09:07) [13]
    >
    > Вот, может кому пригодиться...

    Спасибо, ты открыл мне глаза...
    Кстати, а куда делся image из первоначального вопроса?
  • sniknik © (14.10.10 11:48) [15]
    > Кстати, а куда делся image из первоначального вопроса?
    туда же, куда клиентский датасет из показанного "проблемного" кода... :)
    и оттуда же взялось BDE, а код конечно пригодится тем у кого ADO например... будет с чего спрашивать "почему не работает. подсказали бы раз такие все грамотные".
  • 101 (27.09.12 18:58) [16]
    Вы внатуре дебилы, а не программисты!)) На новичка наезжать - последнее дело..
  • brother © (27.09.12 19:26) [17]
    кум в прокуратуре!
  • Писатель (28.09.12 02:02) [18]

    > Вы внатуре дебилы, а не программисты!)) На новичка наезжать
    > - последнее дело..


    Это древняя советская традиция чмурить неопытных, слабых и прочих сирых и убогих. Вырастешь таким же будешь. У них (убогих) времени то как у дурака махорки, их можно гонять. :-D

    Заставлять их читать хелпы на НЕМЕЦКОМ языке, да даже если и на английском (да да наймите переводчика), то проще в инете найти, чем что то в этом хелпе понять.
  • Германн © (28.09.12 02:07) [19]

    > то проще в инете найти

    Что можно найти на помойке пусть даже на всемирной?
    Не уподобляйтесь бомжам.
  • Писатель (28.09.12 05:21) [20]

    > Что можно найти на помойке пусть даже на всемирной?
    > Не уподобляйтесь бомжам.


    Этот сайт тоже в интернете, в нем много чего можно найти, если знаешь как правильно задать вопрос гуглю ) Конечно, плохо что информация не структурирована в инете, но уже гораздо эффективней чем по книгам искать ответ.
  • Андреевич (28.09.12 11:56) [21]

    > Что можно найти на помойке пусть даже на всемирной?

    ой, неужели это ты сказал? :) т.е. теперь можно будет на твое "погугли" парировать про помойку :)


    > Этот сайт тоже в интернете, в нем много чего можно найти,
    >  если знаешь как правильно задать вопрос гуглю )

    ответ - половина вопроса, если ты сумел грамотно сформулировать вопрос - значит ты уже ориентируешься в теме и сторонняя помощь не особо нужна. А спрашивают те, кто очень мало ориентируется, потому и не знают что спросить у поисковика. Для этого и есть форумы, где если не помогут с реализацией, так хоть подскажут куда копать.
    А любителей посылать на форумах в "гугл", имхо, надо банить. Сначала на месяцок, а в случае повторения - совсем, это бесполезная биомасса.
  • Кщд (28.09.12 12:01) [22]
    >Писатель   (28.09.12 02:02) [18]
    >Это древняя советская традиция чмурить неопытных, слабых и прочих сирых и убогих
    годик советов-то застали, чтобы рассуждать о советских традициях?)
  • Германн © (28.09.12 13:25) [23]

    > Андреевич   (28.09.12 11:56) [21]
    >
    >
    > > Что можно найти на помойке пусть даже на всемирной?
    >
    > ой, неужели это ты сказал? :) т.е. теперь можно будет на
    > твое "погугли" парировать про помойку :)
    >

    Можно. Но тебе придется потрудиться в поисках моих "погуглей" :)
  • Плохиш © (28.09.12 15:49) [24]
    Сколько ж здесь некроманов...
 
Конференция "Начинающим" » Вставка изображения в BLOB поле [D7]
Есть новые Нет новых   [134431   +9][b:0][p:0.003]