powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить файл(JPG) из поля Image
15 сообщений из 15, страница 1 из 1
Как получить файл(JPG) из поля Image
    #39481664
abrashka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый!
Получили старую базу, в которой есть таблица Customer с полем Picture image null.
Хотелось бы верить, что там действительно хранится фото клиента.

Пытаюсь экспортировать image в JPG, но полученный файл не открывается в графическом редакторе :(
Что я делаю не так и как нужно его открывать?
В качестве примера, я запускаю этот скрипт для получения фото клиента с id=114230
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
declare @KeyField int
declare @FileName nvarchar(1000)
declare @bcpCommand nvarchar(4000)
 
DECLARE c1 CURSOR FOR 
SELECT CustomerId
FROM dbo.Customer
WHERE CustomerId=114230
OPEN c1

FETCH NEXT FROM c1
INTO @KeyField

WHILE @@FETCH_STATUS = 0
BEGIN

-- Create unique name for the file using KeyField from the table
SELECT @FileName = 'C:\ttt\' + convert(varchar(18), @KeyField) + '.jpg'

SET @bcpCommand = 'bcp "SELECT Picture FROM [dbo].[Customer] WHERE CustomerId = ' + convert(varchar(18), @KeyField) + '" queryout "'
SET @bcpCommand = @bcpCommand + @FileName + '" -S MyServer\SQL2014 -T -n'


PRINT @bcpCommand
EXEC master..xp_cmdshell @bcpCommand, no_output

FETCH NEXT FROM c1
INTO @KeyField

END

CLOSE c1
DEALLOCATE c1 
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39481677
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abrashka,

попробуйте использовать этот код для заведомо исправной картинки. Потом ищите проблему, если останется.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как получить файл(JPG) из поля Image
    #39908844
_Gavrysh_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,
Добрый день. Использовал выше указанный скрипт. При открытие полученного файла выдаёт:
Средству просмотра Windows не удаётся открыть это изображение, так как файл повреждён или слишком велик.
Размер исходного и полученного файла совпадает. 46,8 Кб
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908851
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Gavrysh_,

Побайтово сравните, предположу, что у вас появились какие-то добавки в начале или конце файла
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908853
_Gavrysh_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, действительно до 48 010, после 48 014. И откуда это берётся и как этим "бороться"?
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908857
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Gavrysh_
Да, действительно до 48 010, после 48 014. И откуда это берётся и как этим "бороться"?
1) И чем они отличаются?
2) Скрипт не меняли?
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908861
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Gavrysh_
Да, действительно до 48 010, после 48 014. И откуда это берётся и как этим "бороться"?
BCP в начало файла пишет 4 байта размера файла.
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908873
_Gavrysh_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg
_Gavrysh_
Да, действительно до 48 010, после 48 014. И откуда это берётся и как этим "бороться"?
1) И чем они отличаются?
2) Скрипт не меняли?

datalength(Поля исходного файла(image)) тоже равно 48010

Скрипт менял только под свои таблицы. А на первый вопрос не знаю как ответить.
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908875
_Gavrysh_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov
_Gavrysh_
Да, действительно до 48 010, после 48 014. И откуда это берётся и как этим "бороться"?
BCP в начало файла пишет 4 байта размера файла.

А есть средство избежать это? Читаю документацию про bpc пока про это ни чего не нашёл.
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908880
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Gavrysh_

А есть средство избежать это?

задать format file с одной SQLBINARY-колонкой.
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908886
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если версия MSSQLSERVER - позволяет (2012+), создайте таблицу filetable с нетранзакционным доступом, и сохраняйте свои картинки туда сразу, минуя возню с bcp.
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908895
_Gavrysh_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yasha123
_Gavrysh_

А есть средство избежать это?

задать format file с одной SQLBINARY-колонкой.

Всего и делов то ) Не подскажите как?
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908899
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Gavrysh_,

создаете файл с расширением .fmt.

Код: plaintext
1.
2.
3.
9.0 
1 
1       SQLBINARY           0       0       ""   1     Data                                   "" 

в команде bcp дописываете атрибут "-f <путь к fmt-файлу>"
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908916
_Gavrysh_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Minamoto,
Yes! Получилось спасибо. И остальным спасибо тоже.
...
Рейтинг: 0 / 0
Как получить файл(JPG) из поля Image
    #39908969
_Gavrysh_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и да, параметр -n не нужен
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить файл(JPG) из поля Image
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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