Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как отобразить картинку из поля типа image / 20 сообщений из 20, страница 1 из 1
07.10.2003, 10:51
    #32285898
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
Есть БД MSSQL. В ней есть татлица, в которой есть поле с типом image.
В это полу грузится бинарные данные (это tiff файл или jpg - не критично). Как выбрать файл и сохранить его - я знаю. А как сделать что-то типа preview? Т.е. просмотр файла из БД без сохранения. Чую, что надо как-то поток направить в какой-то компонент, который может потоки читать, а вот какой, я не знаю.
...
Рейтинг: 0 / 0
07.10.2003, 10:56
    #32285909
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
когда пришлось решать подобную задачу - сделал так

1.сделал выборку в ADODB.Recordset
2.связал поле изображения с PictureBox на форме
3.передвигался по записям и смотрел картинки
...
Рейтинг: 0 / 0
07.10.2003, 11:10
    #32285939
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
Заставили меня на VB писать, поэтому ногами не пинайте. Можно подробнее,а?

Я делаю так для сохранения в файл:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim Conn_2_save As New ADODB.Connection
    Dim Rs_2_save As New ADODB.Recordset

.
.
.
.

Rs_2_save.Open SQL, Conn, adOpenStatic
        mystream.Type =  1 
        mystream.Open
        mystream.Write Rs_2_save( "bin" )
        mystream.SaveToFile CommonDialog1.filename,  2 


А как привязать к Picture1.Picture ?

Picture1.Picture = LoadPicture([filename], [size], [colordepth],[x,y]) - это из файла, а как к filename поток привязть ???
...
Рейтинг: 0 / 0
07.10.2003, 11:16
    #32285956
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
как обычно, через DataSource и DataMember
...
Рейтинг: 0 / 0
07.10.2003, 11:40
    #32285998
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
примерно так:
Код: plaintext
1.
2.
  Rs_2_save.Open SQL, Conn, adOpenStatic
  Set PictureBox1.DataSource=Rs_2_save
  PictureBox1.DataMember= "bin" 
вот и всё. и думать забудь о потоках.
...
Рейтинг: 0 / 0
07.10.2003, 11:57
    #32286037
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
Тогда уж
Set PictureBox1.DataSource = Rs_2_save("bin")


Код: plaintext
1.
2.
3.
4.
5.
6.
   Conn_2_save.Open odbc_string,  "scott" ,  "tiger" 
   SQL =  "Select bin from archive where id=11 "
   Rs_2_save.Open SQL, Conn_2_save, adOpenStatic
   Set PictureBox1.DataSource = Rs_2_save( "bin" )
   PictureBox1.DataMember =  "bin" 



bin - так поле в БД наз-ся, но и в этом случае оно говорит, что Runtime error 424. Необходим объект.
...
Рейтинг: 0 / 0
07.10.2003, 12:06
    #32286047
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
попробуй в таком порядке:
Код: plaintext
1.
PictureBox1.DataMember= "bin" 
Set PictureBox1.DataSource=Rs_2_save
...
Рейтинг: 0 / 0
07.10.2003, 12:09
    #32286051
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
:)
пробовал. тоже.
...
Рейтинг: 0 / 0
07.10.2003, 12:47
    #32286141
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
Бог с ним, с картинкой. Ну текст-то должен выводиться...


Код: plaintext
1.
Set Label1.DataSource = Rs_2_save
Label1.DataMember =  "title" 


а оно пишет Unable to bind to field or DataMember: 'title'

это почему ?
...
Рейтинг: 0 / 0
07.10.2003, 13:07
    #32286183
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
сделай полную выборку из таблицы
Код: plaintext
select * from archive
...
Рейтинг: 0 / 0
07.10.2003, 13:19
    #32286194
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
Если интересует таблица, то она была сделана так:

create table archive (id bigint IDENTITY (1,1), title varchar (255), descr varchar(255), bin image not null)
Соответственно,
select id,title,descr from archive выглядет так:

1 Описание докуProject1.exeProject1.exe TextProject1.exe
2 запись 2 fgh dfgh fgh
3 project 2 2 запись
5 8 mb file Text2
97 3_6814_138 Изм_Нов_13-90 лист_1-1.tif описание
98 C:\a.bmp описание

Кусок select bin from archive where id=97

0x49492A00080000001000FE0
...
Рейтинг: 0 / 0
07.10.2003, 13:26
    #32286202
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
picturebox - он умеет отображать bmp, jpg, gif и пр. вроде бы по формату tiff там ничего нет. ставь картинку с jpg ...
...
Рейтинг: 0 / 0
07.10.2003, 13:38
    #32286227
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
я тоже грешил на это, поэтому и выбирал поле с id=98, в котором у меня лежит bmpшка.

Если отвлечься от картинок, то такая штука тоже не работает:



Код: plaintext
1.
Set Label1.DataSource = Rs_2_save
Label1.DataMember = "title


понятно, что можно сделать так
Код: plaintext
Label1.caption = Rs_2_save( "title" )

и оно прокатит, но надо картинку.
...
Рейтинг: 0 / 0
07.10.2003, 13:46
    #32286238
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
еще раз все посмотрел, и единственное отличие в программах нашел только в провайдерах - я использую родной SQLOLEDB, а у тебя, судя по всему, oledb поверх odbc
хоть крестись хоть матерись ...
...
Рейтинг: 0 / 0
07.10.2003, 13:51
    #32286243
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
А SQLOLEDB быстрее работает?
...
Рейтинг: 0 / 0
07.10.2003, 13:53
    #32286249
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
очень шустро - прямой oledb провайдер для ms sql сервера
...
Рейтинг: 0 / 0
07.10.2003, 13:53
    #32286250
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
кусок сода, если не жалко, для работы с SQLOLEDB, пож-ста кинь.
...
Рейтинг: 0 / 0
07.10.2003, 13:58
    #32286259
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
все тоже самое, кроме строк подключения для ADODB.Connection
используем windows авторизацию:
Код: plaintext
Provider=SQLOLEDB;Data Source=ServerName;Initial Catalog=DataBaseName;Integrated Security=SSPI;
используем sql server авторизацию:
Код: plaintext
Provider=SQLOLEDB;Data Source=ServerName;Initial Catalog=DataBaseName;User ID=sa;Password=XXXX;
...
Рейтинг: 0 / 0
07.10.2003, 15:04
    #32286382
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
Попробовал, ради интереса, без odbc. Вся программа работает, за исключением этих злополучных

Код: plaintext
1.
2.
3.
Label1.Caption = Rs_2_save.Fields( "bin" )
Set Label1.DataSource = Rs_2_save
Label1.DataMember =  "title" 


Может быть надо у компонента Label1 какин-то свойства прописать, например есть DataFormat какой-то и его можно поставить в "рисунок". Есть еще там же DataField и DataSource с DataMember. Может в них дело?????
...
Рейтинг: 0 / 0
10.10.2003, 10:31
    #32289621
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить картинку из поля типа image
Проблема решена следующим образом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset

Conn.Open  "provider=SQLOLEDB;Data Source="  & DBHost &  ";Initial Catalog="  & DBName &  ";Integrated Security=SSPI;" 
SQL =  "Select bin from document" 
Rs.Open SQL, Conn, adOpenStatic
Set Image1.DataSource = Rs
Image1.DataField =  "bin" 


всем спасибо.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как отобразить картинку из поля типа image / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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