powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Картинка в поле text
16 сообщений из 16, страница 1 из 1
Картинка в поле text
    #32789824
Lukich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Картинки хранятся в поле таблицы типа text (MSSQLServer'2000)
Сохраняю на диск следующим образом (из ADP'2000):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Кнопка0_Click()
Dim mstream As New ADODB.Stream
Dim rs As New ADODB.Recordset

rs.Open "SELECT img_smalldata, img_type FROM images WHERE img_id=123", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
mstream.Type = adTypeText 'adTypeBinary '
mstream.Open
mstream.WriteText (rs.Fields( 0 ).Value) 'Write
mstream.SaveToFile CurrentProject.Path & "\qwe.gif", adSaveCreateOverWrite
rs.Close
End Sub

Все работает, только файл сохраняется текстовый(((

Как мне получить всетаки картинку?
Код: plaintext
1.
2.
3.
4.
...
mstream.Type = adTypeBinary
mstream.Open
mstream.Write (rs.Fields( 0 ).Value) 
...
не работает((
...
Рейтинг: 0 / 0
Картинка в поле text
    #32790606
Lukich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ау!
Никто не сталкивался с хранением картинок в поле text?
горит!!!
...
Рейтинг: 0 / 0
Картинка в поле text
    #32790620
Lukich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Картинки хранятся в поле таблицы типа text (MSSQLServer'2000)
Сохраняю на диск следующим образом (из ADP'2000):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Кнопка0_Click()
Dim mstream As New ADODB.Stream
Dim rs As New ADODB.Recordset

rs.Open "SELECT img_smalldata, img_type FROM images WHERE img_id=123", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
mstream.Type = adTypeText 'adTypeBinary '
mstream.Open
mstream.WriteText (rs.Fields( 0 ).Value) 'Write
mstream.SaveToFile CurrentProject.Path & "\qwe.gif", adSaveCreateOverWrite
rs.Close
End Sub

Все работает, только файл сохраняется текстовый(((

Как мне получить всетаки файл-картинку?
((
Код: plaintext
1.
2.
3.
4.
...
mstream.Type = adTypeBinary
mstream.Open
mstream.Write (rs.Fields( 0 ).Value) 
...
не работает((
...
Рейтинг: 0 / 0
Картинка в поле text
    #32790622
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все работает, только файл сохраняется текстовый(((
Странно если бы тип данных text сохранляся по другому.
А почему не используете тип image ?
...
Рейтинг: 0 / 0
Картинка в поле text
    #32790632
Lukich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory Все работает, только файл сохраняется текстовый(((
Странно если бы тип данных text сохранляся по другому.
А почему не используете тип image ?
Не знаю почему используется тип text :o(
... база не моя
...
Рейтинг: 0 / 0
Картинка в поле text
    #32790646
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не уверен, что поможет, но, мне кажется, стоит порыть в эту сторону:

CreateObject("Scripting.FileSystemObject")
...
Рейтинг: 0 / 0
Картинка в поле text
    #32790836
Lukich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shurgenzне уверен, что поможет, но, мне кажется, стоит порыть в эту сторону:

CreateObject("Scripting.FileSystemObject")

порыл, но ничего полезного из Scripting.FileSystemObject для моего случая не вынес(((
может есть еще мысли?
...
Рейтинг: 0 / 0
Картинка в поле text
    #32790905
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Картинка в поле text
    #32791015
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конвертировать бинарный в текст base64 (Delphi7 - Indy) и обратно (но размер увеличиться).
...
Рейтинг: 0 / 0
Картинка в поле text
    #32791067
Lukich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК http://kozin1.narod.ru/newsite/index.html?picjpg.htm

работает!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim rs As New ADODB.Recordset

rs.Open "SELECT img_smalldata, img_type FROM images WHERE img_id=123", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

  Dim Filedata() As Byte, filename
 
         filename = CurrentProject.Path & "\qwe.jpg"
 
         ReDim Filedata(Len(rs( 0 )) -  1 )
 
         Filedata() = rs( 0 )
 
         Open filename For Binary Access Write As # 1 
 
             Put # 1 , , Filedata()
 
         Close # 1 

но проблема осталась - файлы получаются текстовые(((
...
Рейтинг: 0 / 0
Картинка в поле text
    #32791124
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иначе наступит жопа, когда в картинке встретится нулевой байт.

Код: plaintext
1.
 _________
Свет в конце тоннеля временно потушен по техническим причинам. 
...
Рейтинг: 0 / 0
Картинка в поле text
    #32791229
Lukich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКонвертировать бинарный в текст base64 (Delphi7 - Indy) и обратно (но размер увеличиться).
Попробовол в TotalCommander'e [файл]/[кодировать MIME(Base64)]
потом [файл]/[декодировать]
В результате получился тотже самый файл (сравнение по содержимому не дало различий)
Или я не так понял? Надо Delphi7 устанавить? Или только какую-то утилиту?


авторИначе наступит жопа, когда в картинке встретится нулевой байт. А что произойдет?
...
Рейтинг: 0 / 0
Картинка в поле text
    #32791308
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто класс TNMUUProcessor есть в пакете Indy.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  NMUUProcessor1 := TNMUUProcessor.Create(Nil);
  MemStreamInfoIBase := TMemoryStream.Create;
  MemStreamOut := TMemoryStream.Create;
  try
    try
      with MemStreamInfoIBase do
        for i :=  1  to nCount do
        begin
          Write(Pnt.x, SizeOf(Double));
          ...............................
        end;
      NMUUProcessor1.InputStream := MemStreamInfoIBase;
      NMUUProcessor1.OutputStream := MemStreamOut;
      NMUUProcessor1.Encode;
      MemStreamOut.Position :=  0  ;
      ................................
    finally
      MemStreamInfoIBase.Clear;
      MemStreamOut.Clear;
    end;
...
Рейтинг: 0 / 0
Картинка в поле text
    #32791318
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DankovИначе наступит жопа, когда в картинке встретится нулевой байт.
Не наступит, серверу нулевые байты по... тоесть не мешают.
...
Рейтинг: 0 / 0
Картинка в поле text
    #32791411
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Твой объект - mstream умеет при смене типа конвертировать и в base64 и в текст и .......
...
Рейтинг: 0 / 0
Картинка в поле text
    #32791589
Lukich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Твой объект - mstream умеет при смене типа конвертировать и в base64 и в текст и .......
Я в самом начале писал что пробовал:
Код: plaintext
1.
2.
3.
4.
5.
...
mstream.Type = adTypeBinary
mstream.Open
mstream.Write (rs.Fields( 0 ).Value) 
...
Но это не работает (ADO2.5-2.8)...вываливается с ошибкой несоответствия типов
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Картинка в поле text
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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