Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
В примерах SQL серевера нашел вот такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Но что-то мне подсказывает, что должен быть короткий путь :), более элегантный... И как в поле image записть картинку (например из файла), что-то как я не стараюсь, он мне пишет несоответствие типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2004, 18:02 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
вот тебе по-короче, но без сливания в файл :-))) код не мой - выдрал где-то, не помню где, но работает стабильно во многих проектах. Забытому мною автору - отдельное спасибо. в модуль добавляешь Код: plaintext 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. в референсах ставишь ссылку на STG.tlb запихиваем картинку в сервер: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Получаем картинку из сервера: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2004, 14:09 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Hibernateв референсах ставишь ссылку на STG.tlb А это откуда брать у меня такого не то что в референсах, на компе в принципе нет! или я что-то недопонял о_О ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:38 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
оставь адрес - зашлю, если ты еще не нашел в нете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2009, 15:12 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Hibernateоставь адрес - зашлю, если ты еще не нашел в нете. и мне, и мне мыло в профиле спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2009, 15:15 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Можно обойтись без (вообще или нестандартных) библиотек типов. Здесь три подзадачки: 1) получение данных из источника и формирование на них COM-объекта, поддерживающего интерфейс IStream. Например, можно положить полученные (из файла или поля источника) данные в байтовый массив и применить функцию CreateStreamOnHGlobal(), как в данной теме, или воспользоваться тем, что ADODB.Stream реализует интерфейс IStream; 2) декодирование данных из IStream и получение раскодированного изображения. Например, можно использовать функцию OLE-библиотеки OleLoadPicture() или библиотеки GDI+ GdipLoadImageFromStream(); 3) отображение раскодированного изображения на устройстве отображения. Здесь варианты зависят от формата и устройства, например, для отображения в PictureBox можно просто взять COM-объект, поддерживающий интерфейс IPicture, полученный от OleLoadPicture() и передать ссылку на него в PictureBox через Property Set Picture. Пример. Впрочем, существуют и другие варианты, например Intel JPEG Library может брать данные из памяти по указателю, IStream не надо создавать. Но для этого надо тащить с exe-шником библиотечную DLL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2009, 17:38 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
БенедиктМожно обойтись без (вообще или нестандартных) библиотек типов. Здесь три подзадачки: А можно, если вам не сложно, конкретизировать пример для варианта ADO. А то как-то совершенно не приходилось работать с потоками :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2009, 17:47 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 19:31 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Вот , кстати, ещё интересная инфа... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 19:36 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
PelicanShocker.Pro, Вот тебе пример С англицким, надеюсь, проблем нету? :) гм. Если я правильно понял - этот пример использует сохранение в файл на диск и последующую загрузку. В принципе, это можно сделать и без стрима. Я же хотел бы перегружать картинку из базы прямо в ImageList или PictureBox МИНУЯ файловую систему, ибо при большом количестве маленьких картинок дисковая операция занимает заметное время (это я уже пробовал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 20:43 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Возни с ADO-шным потоком больше, чем с массивом, а выгоды не просматриваются (если делать свою реализацию IStream, то можно получить хоть что-то, вроде индикатора прогресса загрузки и кнопки остановки). Пусть есть форма, кнопка, PictureBox. Для загрузки через массив: Код: plaintext 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. Код: plaintext 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. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 03:49 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
БенедиктShocker.Pro, Возни с ADO-шным потоком больше, чем с массивом, а выгоды не просматриваются Для загрузки через массив: Ага, вроде то, что я хотел, НО. Решил попробовать и тут возник вопрос - а в каком виде картинка должна быть в базе? Ведь если я просто положу туда файл какого-то формата, он же будет снабжен какими-то заголовками и т.п. А тут же прямое присваивание свойства Picture, без всякого LoadFromFile.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 13:37 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Shocker.ProБенедиктShocker.Pro, Для загрузки через массив: Ага, вроде то, что я хотел, НО. Решил попробовать и тут возник вопрос - а в каком виде картинка должна быть в базе? Ведь если я просто положу туда файл какого-то формата, он же будет снабжен какими-то заголовками и т.п. А тут же прямое присваивание свойства Picture, без всякого LoadFromFile.... Я тут приложил свой старенький тестовый примерчик... В нем вас интересует функция LoadPictureFromBytes . Ну и остальные может пригодятся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 15:24 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
AndrFЯ тут приложил свой старенький тестовый примерчик... В нем вас интересует функция LoadPictureFromBytes . Ну и остальные может пригодятся... Честно говоря, я не понял, что с ней сделать. Там идет работа с файлами, а у меня как раз вопрос, как файлы миновать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 21:37 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Shocker.ProРешил попробовать и тут возник вопрос - а в каком виде картинка должна быть в базе? Ведь если я просто положу туда файл какого-то формата, он же будет снабжен какими-то заголовками и т.п. В общем случае - в том, что понимает функция декодирования. Стандартные функции берут стандартные форматы, например, OleLoadPicture() берёт BMP, GIF, JPEG, a GdipLoadImageFromStream() берёт BMP, GIF, JPEG (расширенная поддержка), TIFF, PNG. То есть в длинное двоичное поле в базе надо класть содержимое файла без "заголовков и т.п."Shocker.ProА тут же прямое присваивание свойства Picture, без всякого LoadFromFile....Ну, относительно прямое: PictureBox <- IPicture(Disp) <- функция декодирования <- IStream <- массив <- поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 03:35 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
БенедиктВ общем случае - в том, что понимает функция декодирования. Стандартные функции берут стандартные форматы, например, OleLoadPicture() берёт BMP, GIF, JPEG То есть, если я правильно понял, формат будет определен по содержимому файла автоматически и никому рассказывать особым образом, что это BMP или JPG - не требуется... Ок, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 11:13 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 12:13 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
БенедиктShocker.Pro, да. Не, Бенедикт, что-то не едут у меня лыжи, выдернул пример: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 14:54 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, тут по ходу пара лыж едущих уже была, но пусть будет ещё одна Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2010, 02:40 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Shocker.ProAndrFЯ тут приложил свой старенький тестовый примерчик... В нем вас интересует функция LoadPictureFromBytes . Ну и остальные может пригодятся... Честно говоря, я не понял, что с ней сделать. Там идет работа с файлами, а у меня как раз вопрос, как файлы миновать Что тут непонятного - я даже название функции указал, которая возвращает Picture из байтового массива. А откуда ты возьмешь этот массив - из файла или поля базы данных твое дело... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2010, 08:54 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Гм. Выяснилось, что проблема в том, как программер кривыми ручонками написал код для хранения файлов в БД (фрагмент этого кода я как раз привел в примере). А так как он криво написал и сохранение и извлечение, то "плюс криво" на "минус криво" давало на выходе нормальный файл. Так что начну с переделки его кода и "переоприходования" файлов в БД а потом вернусь к функции, я думаю, что она заработает. AndrF, Бенедикт - спасибо за терпение, отчитаюсь позже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2010, 15:59 |
|
||
|
Как заставить PictureBox отображать картинку полученую с SQL сервера
|
|||
|---|---|---|---|
|
#18+
Проблема была неправильном типе BLOB-поля на сервере и неявных преобразованиях VB, а именно - при прямом присвоении байтовому массиву текстового поля, оно испытывает преобразование (по всей видимости в юникод), длина массива становится в два раза больше, чем длина поля. В общем, все работает, спасибо еще раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 13:57 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36390043&tid=2160094]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 138ms |

| 0 / 0 |
