powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка рисунков в MS SQL Server
10 сообщений из 10, страница 1 из 1
Вставка рисунков в MS SQL Server
    #34442551
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Для использования рисунков в базе
Код: plaintext
1.
Array2Picture(aBytes() As Byte) As StdPicture
Picture2Array(ByVal oObj As StdPicture, aBytes() As Byte)
Все нормально пашет, только добавление рисунков в базу у меня медленно работает, секунд 5-8
рисунки объемом 70кб
Параметры компа нормальные, ожидается что прога будет работать и на слабых компах.
Вот так я добавляю в базу:
Код: plaintext
1.
2.
3.
4.
    Dim ArrPicturesBytes() As Byte
    Picture2Array Image1.Picture, ArrPicturesBytes()
    rstPictures.Fields("Picture").AppendChunk ArrPicturesBytes
    rstPictures.Update
Тип поля с рисунком Image в MS SQL Server, сам сервер MSDE
Есть ли способ получше чем у меня? Через запросы :) или другой метод, более эффективный?
Спасибо всем.
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34442661
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите вот это .
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34442751
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да врожде все у тебя правильно. Попробуй определиться где тормоза - в какой из трех строчек тормозит:
Код: plaintext
1.
2.
    Picture2Array Image1.Picture, ArrPicturesBytes()
    rstPictures.Fields("Picture").AppendChunk ArrPicturesBytes
    rstPictures.Update

может тормозить по разным причинам - Picture2Array, но это маловероятно.
Может тормозить AppendChunk - из-за тормозов самого рекордсета
а может тормозить Update - из-за тормозов базы данных.
Соответственно способы борьбы будут разными.
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34442823
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekЕсть ли способ получше чем у меня?

В принципе-то все правильно, правда неизвестно как работает твоя Picture2Array.
То бишь в каком формате помещает картинку в массив. Может в BMP - посмотри первые байтики массива на предмет формата, а то может получиться что ты грузишь в базу значительно больший объем чем изначальная картинка.

Вообще, если нет необходимости лучше не издеваться над форматами картинок и писать в базу содержимое оригинального файла. Ты же, грубо говоря, грузишь из файла в Picture (JPG->BMP), потом выгружаешь в массив (BMP->???) и потом пишешь в базу. Качество при переконвертаци JPG теряется...

И я тут приложил заодно примерчик с несколькими функциями на основе GDI+ - там есть и аналоги твоих, с возможностью сохранения так же и в JPG...
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34443141
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hibernateможет тормозить по разным причинам - Picture2Array, но это маловероятно.Ага, я такими пользовался.
HibernateМожет тормозить AppendChunk - из-за тормозов самого рекордсетаМожно попробовать просто присвоить значение - rstPictures!Picture = ArrPicturesBytes.
Hibernateа может тормозить Update - из-за тормозов базы данных.Скорее из-за параметров соединения и открытия рекордсета.
AndrFпотом выгружаешь в массив (BMP->???) BMP->BMP, уточняю :)
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34445338
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, что долго не проявлял признаков жизни ;)
recordset открывается обычным методом adOpenKeyset,adLockOptimistic
зависания на точке Update
Какие могут быть советы? При данном методе?
Или лучше всего при сохранении грузить в базу из файла, а не из массива?
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34445530
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekКакие могут быть советы? При данном методе?

1. C базой работаешь через OLEDB или ODBC?

2. Размер массива какой?

orunbekИли лучше всего при сохранении грузить в базу из файла, а не из массива?

Считывай файл в массив и сохраняй. Иначе как еще ты его сохранишь?

P.S
В давние-давние времена, лет так 6..8 назад, у меня была программка, которая сохраняла в MDB-шку файлы. На больших файлах (несколько мегабайт) она дико тормозила. При разборке выяснилось что тормоза были из-за того что пытался сохранить массив одним вызовом AppendChunk, после сохранения блоками по 32K - тормоза пропали.
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34445575
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к базе через ADO
гы ;) у меня точно так, в смысле одним Append
теперь поправлю, понятно из-за чего
спасибо большое
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34446952
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekк базе через ADO

Через ADO можно пользовать как ODBC так и OLEDB... ;)

orunbekгы ;) у меня точно так, в смысле одним Append
теперь поправлю, понятно из-за чего спасибо большое

Это было давно и с MDB. Не факт что так-же с MS SQL. Сейчас у меня файлы в несколько мегабайт закидываются мгновенно. Ну а больше мне и не надо...

P.S
Я все же посмотрел бы на размер массива который кидается в базу и формат файла в нем - похоже твой JPG в 70 Kb преобразуется в BMP-шку значительно большего размера... Нафига базу раздувать и трафик грузить-то?
...
Рейтинг: 0 / 0
Вставка рисунков в MS SQL Server
    #34514554
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок, спасибо
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вставка рисунков в MS SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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