Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер / 13 сообщений из 13, страница 1 из 1
15.07.2007, 12:59
    #34659534
FasterHarder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
Код: plaintext
I started in 1983, in 2007 i still on a case!

Всем программистам привет! Respect! В общем столкнулся с небольшой незадачей : необходимо на клиенте отображать неопределенное количество изображений( потенциально может быть больше 1000 ) формата JPEG( и ему подобных ). Как выясняется на этапе программинга, файлы картинок весят от одного мега на брата и вот изначально я решил делать несвязный доступ к базе данных, т е используя DataAdapter и DataSet, но позже понял, что если будет выбрано огромное количество картинок, то просто физически может не хватить места в оперативке компа, т е , как я понимаю, датасет размещается именно в кэше. Поэтому щас думаю, может отказаться( пока не поздно:) ) от несвязного уровня и перейти на связный, т е используя в конечном счете DataReader. Но, как я понимаю, датареадер только для однонаправленного чтения( причем быстрого чтения, т к будет считывать в запросе по одной записи ), а возможно, что в будущем потребуется расширение функционала, связанного с модификацией изображений, как тогда из положения выходить. Может есть какая нить возможность оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер. Подскажите как быть то?
...
Рейтинг: 0 / 0
15.07.2007, 23:00
    #34659756
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
Расскажите для начала, на кой клиенту понадобится сразу 1000 изображений? Не проще ли отдавать ему Thumbnail'ы в пару десятков килобайт каждый, а там уже решать, какие изображения и когда грузить целиком?

И что вы вообще подразумеваете под "связным" и "несвязным"?
...
Рейтинг: 0 / 0
16.07.2007, 10:41
    #34660222
FasterHarder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
Код: plaintext
I started in 1983, in 2007 i still on a case!

Нахлобуч И что вы вообще подразумеваете под "связным" и "несвязным"?

это не я, это Эндрю Троелсен:). Связный -> sqlDataReader, несвязный -> DataSet( DataAdapter ). Что касается изображений, то их может быть гораздо более 1000 : 24 * 1 * 3600 * 24 * 365( максимальное количество картинок( кадров за год )( также возможно в будущем будем прокручивать и ролики ), который возможно понадобится отображать пользователю ). Хотим сделать отображение видеоряда в виде обыкновенных иконок( в базе данных сейчас сами тяжеловесные отображения( более мега на брата ) ), т е как то необходимо преобразовать данные в более легкие по памяти, как этого достичь неизвестно мне, пока:). Вы мне лучше растолкуйте, что значит Thumbnail'ы, буду признателен.
...
Рейтинг: 0 / 0
16.07.2007, 11:22
    #34660386
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
FasterHarderэто не я, это Эндрю Троелсен:). Связный -> sqlDataReader, несвязный -> DataSet( DataAdapter ).
У меня в книге это читается как Disconnected, что не есть "несвязный", а скорее "рассоединенный".
FasterHarder
Что касается изображений, то их может быть гораздо более 1000 : 24 * 1 * 3600 * 24 * 365( максимальное количество картинок( кадров за год )( также возможно в будущем будем прокручивать и ролики ), который возможно понадобится отображать пользователю ).
Клиент в каком виде выполняется? WebForms или WinForms?
FasterHarderнеобходимо преобразовать данные в более легкие по памяти, как этого достичь неизвестно мне, пока:). Вы мне лучше растолкуйте, что значит Thumbnail'ы, буду признателен.
Thumbnail
...
Рейтинг: 0 / 0
16.07.2007, 13:27
    #34660923
FasterHarder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
Код: plaintext
I started in 1983, in 2007 i still on a case!

Нахлобуч Клиент в каком виде выполняется? WebForms или WinForms?

пока на Win, но 100% будет писаться софт и под веббинг.
...
Рейтинг: 0 / 0
16.07.2007, 14:34
    #34661280
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
FasterHarderпока на Win, но 100% будет писаться софт и под веббинг.
На ум приходит, например, такой вариант. Миниатюры отдаются веб-сервисом через HTTP и отображаются на клиенте небольшими порциями. Плюсы подхода -- при умелом использовании If-Modified-Since, HTTP Status 304 и клиентского кэша можно добиться очень высокой производительности при минимальных усилиях.
...
Рейтинг: 0 / 0
16.07.2007, 16:06
    #34661716
FasterHarder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
Код: plaintext
I started in 1983, in 2007 i still on a case!

пока про веб не думаем( разрабатываем только общие библиотеки ). За ссылку спасибо( файл объемом 1.5 мега преобразовал в 40 Кб, используя пиктограмму картинки ), но возник вопрос, связанный с тем, что размер простой иконки примерно около 25 кб, а я программно вытаскиваю данные с sql_2005, затем помещаю в PictureBox и сохраняю в файл с расширением bmp и получаю очень странную картину, все файлы весят около 15 Кб( хотя простая иконка весит больше ). Плюс ко всему делаю еще одну проверку в коде :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
sql_dataRdr = oudh_DLL.LoadDay(sql_conn, sql_comm, sql_connectString, sql_select );

            sql_dataRdr.Read();
                        

            byte[] b = sql_dataRdr.GetSqlBinary( 0 ).Value;
            MessageBox.Show(b.Length.ToString());
            System.IO.MemoryStream ms = new System.IO.MemoryStream(b,  0 , b.Length);
            Bitmap im = (Bitmap)Bitmap.FromStream(ms);            
            pictureBox1.Image = im;

messagebox выдает типа 15890, т е как я понимаю это действительный размер файла, сохраненного в базе данных( и опять имею около 15 Кб ). Снимки были сделаны с камеры, в формате jpeg. Нестыковочка получается, что реальные кадры весят меньше чем какая то иконка или возможно, я неправильно определяю действительный размер картинки, сохраненной в базе данных( думал, что должны быть около 1 М :) ). Есть ли какая нить возможность, программно определить действительный размер файла, залитого в базу данных в виде изображения. Подскажите как быть то?
...
Рейтинг: 0 / 0
16.07.2007, 16:49
    #34661932
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
FasterHarder
пока про веб не думаем( разрабатываем только общие библиотеки ).
В таком стиле:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
sql_dataRdr = oudh_DLL.LoadDay(sql_conn, sql_comm, sql_connectString, sql_select );

            sql_dataRdr.Read();
                        

            byte[] b = sql_dataRdr.GetSqlBinary( 0 ).Value;
            MessageBox.Show(b.Length.ToString());
            System.IO.MemoryStream ms = new System.IO.MemoryStream(b,  0 , b.Length);
            Bitmap im = (Bitmap)Bitmap.FromStream(ms);            
            pictureBox1.Image = im;
будете очень долго и нудно разрабатывать.
FasterHarder
messagebox выдает типа 15890, т е как я понимаю это действительный размер файла, сохраненного в базе данных( и опять имею около 15 Кб ). Снимки были сделаны с камеры, в формате jpeg. Нестыковочка получается, что реальные кадры весят меньше чем какая то иконка или возможно, я неправильно определяю действительный размер картинки, сохраненной в базе данных( думал, что должны быть около 1 М :) ).
Так вы так думали или так и есть? Судя по коду (еще неизвестно, правда, какой там SELECT исполняется) все верно.
FasterHarder
Есть ли какая нить возможность, программно определить действительный размер файла, залитого в базу данных в виде изображения. Подскажите как быть то?
Это самая насущная проблема что ли?

Для SQL Server есть функция DATALENGTH
...
Рейтинг: 0 / 0
16.07.2007, 18:08
    #34662230
FasterHarder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
Код: plaintext
I started in 1983, in 2007 i still on a case!

сейчас идет этап проектирования системы, так что на детали и реализацию не обращайте внимания( все привожу для абстракции ):).
...
Рейтинг: 0 / 0
16.07.2007, 18:15
    #34662250
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
FasterHarderКак выясняется на этапе программинга,
Так какой этап :) ?
...
Рейтинг: 0 / 0
16.07.2007, 18:32
    #34662316
FasterHarder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
Код: plaintext
I started in 1983, in 2007 i still on a case!

на самом деле очень много подводных камней( практически все будет связано с графикой ), поэтому сейчас я моделирую сложность процессов на простых примерах( программингом ), чтоб затем без проблем инкапсулировать куда надо:), т е в целом сейчас еще не сформировано проектирование, а идет этап выявления узких мест( проектирование + "легкий" код ) :).
...
Рейтинг: 0 / 0
16.07.2007, 18:45
    #34662347
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
FasterHarderна самом деле очень много подводных камней
Каких, если не секрет?
...
Рейтинг: 0 / 0
16.07.2007, 21:00
    #34662505
FasterHarder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер
Код: plaintext
I started in 1983, in 2007 i still on a case!

Нахлобуч Каких, если не секрет?

все же ведь относительно:), для кого то мои подводные камни покажутся детскими задачками, расщелкивающиеся как орешки( таких как Троелсен :)) ), так что...:)
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / оставить несвязанный уровень, не погубив систему или однозначно придется юзать датареадер / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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