powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) MSSQL - Image убрать OLE данные.
12 сообщений из 12, страница 1 из 1
(PHP) MSSQL - Image убрать OLE данные.
    #33684469
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть база MSSQL данные в которую заносятся при помощи MsAccess.
Картинки в ней лежат в полях типа Image.
необходимо вывести картинку в браузер.

Проблема в том что кроме картинки в поле лежит левый заголовок (насколько я понимаю заголовок OLE объекта) а уже потом картинка в "сыром виде".

Картинка судя по всему в bmp но самого заголовка bmp - "BM80" в теле нет.

Как отделить олезаголовок от данных ?
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33688677
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по различным ланным из инета, в большинстве случаев люди просто отрезают N байт от начала, но я так и не нашел сколько это N байт. Везде по разному, на php.net 78 вроде кто-то 57 и т.д.
Неужели никто с этим не сталкивался ???
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33689586
Фотография Robert Tappan Moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня в работе используется MSSQL2k и иногда используются поля типа image,но дабы особо не заморачиться и не нагружать базу я сначала сжимаю картинку или файл в рар архив, а уже потом кладу в базу.

А если по сушетсву, то: у меня в поле image нет OLE данных, есть только текст файла. Таким образом я просто сохраняю содержимое поля в файл.

P.S. сейчас ещё попробую в базу совать просто картинку (без архива).

P.P.S. Мне кажется, что MSSQL сам при добавлении изображения в поле image ни чего не дописывает. Может быть стоит посмотреть в сторону того каким образом Вы заполняете поле image.
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33689621
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кхм, я вроде написал, данные заносятся из Access ну тот который в оффис входит.
Так уж сложилось исторически и ничего с этим не поделаешь.

Если бы у меня просто хранилась картинка никаких бы проблем не было.
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33689700
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сколько реально перевтянуть данные в том формате, как предложил Robert Tappan Moris ?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33689701
Фотография Robert Tappan Moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок, да простят меня модераторы раздела, я приведу пример кода на VBA для записи файла в поле image.
дабы не приводить вагон кода опишу переменные:
FldToAdd - название поля, в которое нужно встаить картинку
FileToAdd - полный путь к файлу, который нужно добавить
rst - открытый набор записей, в который нужно вставить картинку, он должен стоять на нужной записи.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
dim myStream as new ADODB.Stream
With myStream
    .Open
    .Type = adTypeBinary
    .LoadFormFile FileToAdd
    rst.Fields.Item(FldToAdd).Value = .Read
    .Close
End With
Set myStream = Nothing
rst.Update
Таким образом операция заталкивания файла в таблицу сводится к обновлению записи.
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33689707
Фотография Robert Tappan Moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. забыл добавить: если нужно могу скинуть работчий пример.
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33689979
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Robert Tappan MorisУ меня в работе используется MSSQL2k и иногда используются поля типа image,но дабы особо не заморачиться и не нагружать базу я сначала сжимаю картинку или файл в рар архив, а уже потом кладу в базу.А смысл в этом, извините, какой? Нагружать сервер распаковкой картинки при каждом её выводе? Экономия на спичках? Юзайте JPG или PNG, если вам объёмы свободного места критичны.
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33690040
Фотография Robert Tappan Moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл в том, что MSSQL не используется для web'а, эта бд находится во внутренней сетке предприятия, и объемы достаточно критичны стали когда бд разрослась на 20Гб, т.к. не только картинки хранятся в бд, вместе с заказом хранятся трехмерная модель и сканы документов и факсов. К тому же распаковка происходит не на серваке, а у клиента.
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33690112
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
Robert Tappan MorisК тому же распаковка происходит не на серваке, а у клиента.В любом случае - это издевательство над клиентом, когда для просмотра стандартного для браузера документа (ведь мы тут приложения для вэб рассматриваем, не так ли?) приходится ещё и карячиться с распаковкой. И это только потому, что кто-то предпочёл хранить данные в raw-формате в виде BMP, вместо того чтобы юзать тот же JPG или PNG.
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33690160
Фотография Robert Tappan Moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я указал, что в данном случае я веду речь не об web'e . Но сути в рамках данной темы это не меняет, у тредстартера проблема с OLE заголовками в полях image, я имею некоторый (возможно не самый богатый) опыт работы с image-полями предлагаю обратить внимание на механизм сохранения данных, вместо того, чтобы мучаться с этими заголовками при извлечении данных.

P.S. ещё раз хочу подчеркнуть то, что мои предыдущие сообщения в это теме написаны с точки зрения программиста VB-MSSQL, и не имеют отношение к программированию для web'а.

P.P.S. для web'a лично я не храню картинки в бд: или отдельная папочка, а пути к картинкам в бд, или отдельный поддомен, а пути - там же (в бд).
...
Рейтинг: 0 / 0
(PHP) MSSQL - Image убрать OLE данные.
    #33691297
1024byte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даннык заносятся именно таким образом, из существующей клиенской программы и эта система меняется не будет. Естественно проще было бы изменить ее но такова ситуация. Решить вопрос можно только бытащив картинку из оле объекта, пережав ее из bmp в jpg и отдав браузеру.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) MSSQL - Image убрать OLE данные.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]