Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Vb 6.0 и Access вопрос чтения\записи больших данны Добавлено: 17.08.09 17:23  

Автор вопроса:  psinetron | ICQ: 218945948 
Здравствуйте программисты!
У меня возникла небольшая проблемка. Пишу подобие телефонного справочника для предприятия с использованием БД Access. по сути программа готова, но попросили воткнуть в нее фотографии сотрудников. структура таблицы в бд простая:
ФИО\номер телефона\...\фото
размеры фотографий 80х100
нужно чтобы фотки хранились в самой бд. на сколько я знаю - VB 6.0 не может вытягивать картинки из Access. искал по форуму - предлогают сохранять картинки отдельным файлом и просто подписывать в БД путь к ним. такой вариант не подходит.
хотелось бы сделать так - в поле фото (пускай оно будет текстовое, или еще какое-нибудь я не особо разбираюсь) и записывать картинку не как картинку, а как набор симвлов. потом из БД создавать файл foto.jpg записывать в него данные из БД и путем LoadPicture уже загружать его.
Теперь сам вопрос - как записать картинку в бд?
т.е. знаю метод:

Dim TxtData As String
Open "D:\test.txt" For Input As #1
While Not EOF(1)
Line Input #1, TxtData
wend
Close #1

но как я понимаю он подходит только для текстовых файлов.
может я просто что-то недопонимаю?
Очень бы хотелось посмотреть код копирования картинки из файла 1.jpg в 2.jpg путем посимвольного считывания.
а еще лучше прямое решение моей проблемы (т.е. запись\чтение картинки в\из Access)
Объяснил как мог ))) Большое спасибо если кто-нибудь ответит

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 psinetron



ICQ: 218945948 

Вопросов: 34
Ответов: 28
 Профиль | | #1 Добавлено: 17.08.09 18:30
нашел кое-что, но вот проблема, не могу разобраться:
* примечание rs=Public RS As ADODB.Recordset
  1.  
  2. Dim iFileNum As Integer
  3. Dim lFileLength As Long
  4. Dim abBytes() As Byte
  5. Dim iCtr As Integer
  6. Dim filename As String
  7. iFileNum = FreeFile
  8. filename = "D:\1.jpg"
  9. Open filename For Binary Access Read As #iFileNum
  10. lFileLength = LOF(iFileNum)
  11. ReDim abBytes(lFileLength)
  12. Get #iFileNum, , abBytes()


'если я правильно понимаю, то сейчас в abBytes находится содержимое файла ";D:\1.jpg"
далее идет вот такая строка:
  1.  
  2. RS.Fields(FieldName).AppendChunk abBytes()


вот тут я и не могу разобраться - не понимаю что эта строка вообще значит?
пробовал сделать так:
  1. Set RS = cn.Execute("insert into table1([fio],[otdel])values('" & Text1.Text & "','" & Combo1.Text & "','" & adbyte & ")")

- пишет несовпадение типов... подскажите пожалуйста, уже извелся весь.

Ответить

Номер ответа: 2
Автор ответа:
 psinetron



ICQ: 218945948 

Вопросов: 34
Ответов: 28
 Профиль | | #2 Добавлено: 18.08.09 16:54
Ну неужели нкито не подскажет как в OLE поле Access добавить данные в виде картинки? с запросом вида
insert into table1([pict];)values(" & abByte & ";)";)

где abByte as byte
Ну есть же наверное знающие люди? помогите плиззз

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 18.08.09 23:25
попробуй вставлять через рекордсеты, а не запросом...

Пример через DAO здесь - http://www.vbnet.ru/samples/download.aspx?id=291
Через ADO как-то похоже, сходу не вспомню, но суть в том, что пихать байтовый массив в виде текстового запроса - явно не правильно. Не кажется?

Ответить

Номер ответа: 4
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #4 Добавлено: 19.08.09 00:18
Ну блин с аксом то какие проблемы разобраться?
Ведь наверняка все это написано уже сто раз!
Былобы время написалбы решение.
Щас непомню у пикчербокса, иминжа или оле есть датасорс и датафилд?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам