|
|
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Здравствуйте ! Подскажите пожалуйста, как можно организовать загрузку данных из базы в DataSet по мере надобности этих данных... К примеру имеется несколько тысяч записей в таблице... пользователь последовательно переключает записи и редактирует их... ему же не обязательно иметь сразу все записи в памяти. К тому же если база удаленная это особенно актуально. Буду благодарен за ссылки на материалы по данной теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2009, 07:47 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2009, 10:40 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Paging - это же для Web... А про фильтр не совсем понятно... если подразумевается фильтрация записей (св-во RowFilter различ. компонентов), то это не вариант, ведь все равно все записи уже будут извлечены из базы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2009, 13:45 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Чистяк КонстантинPaging - это же для Web... datagridview paging Чистяк Константинесли подразумевается фильтрация записей (св-во RowFilter различ. компонентов), то это не вариант, ведь все равно все записи уже будут извлечены из базы Фильтровать нужно не локально (RowFilter), а средствами СУБД (SQL запросами, условиями WHERE, динамические фильтры). P.S. Посмотрите линк, который я Вам дал. Там именно это и сделано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2009, 18:24 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Вот, накидал Вам пример, как это делается. Сделан простейкий юзер контрол GridPager.cs. Для его работы нужно всего-лишь инициализировать его евентом на делегат: GridPager.Page(LoadPage) Sample Код: 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. Фильтрация данных идет средствами SQL сервера, а не локальными средствами источника данных (именно так и нужно работать и отрывать руки разработчикам за локальные фильтры). Paging - это еще более удобное средство навигации по "страницам" грида + оптимальность (не грузим сервер лишними наборами данных). Не представляю, как, вообще, разработчики могут писать программы под БД без динамических серверных фильтров и пейджинга Сорцы: скачать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 10:55 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУ, огромное спасибо за ответы и терпимость к моему непониманию данного аспекта ! Отедльное спасибо за код - на конкретном примере всегда лучше понимается :) Надеюсь больше вопросов не возникнет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 16:33 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Чистяк КонстантинНадеюсь больше вопросов не возникнет :) Если возникнет вопрос по выборке данных из БД на основе пейджинг-запроса, то В Linq 2 SQL / EF это делается так: Код: plaintext 1. 2. В NHibernate это делается так: Код: plaintext 1. 2. 3. На Transact SQL (2005 сиквел) это делается так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. P.S. Под каждую ORM или чистый SQL - решение может выглядеть по-разному. Главное одно - выбирайте данные с условием Where + Paging - серверными манипуляциями, а не клиентскими. Эта манупуляция заложена в методе LoadPage(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 17:07 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 17:29 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУЧутка допилил контрол, сделал его поюзабельнее :) а зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 18:10 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкиМСУЧутка допилил контрол, сделал его поюзабельнее :) а зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого 1. Это не в контроле, это отдельное окно, мониторящее происходящее. Его, конечно, нужно убрать потом. 2. Запрос на Count(*) нужен для формирования пейджинга . Это классика. RTFM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2009, 21:58 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУ 2. Запрос на Count(*) нужен для формирования пейджинга . Это классика. RTFM. деточка, какой пейджинг, если твой второй запрос вернет число <=50, т.е. количество элементов, возвращенное в первом запросе? тебя видно бес попутал, что считать-то надо.. RTFM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 00:07 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкиМСУ 2. Запрос на Count(*) нужен для формирования пейджинга . Это классика. RTFM. деточка, какой пейджинг, если твой второй запрос вернет число <=50, т.е. количество элементов, возвращенное в первом запросе? тебя видно бес попутал, что считать-то надо.. RTFM Сынок, Вы видимо перепили с бодуна - первый запрос возвращает PageSize=50 строк, и как изволите узнать, на сколько страниц мне рисовать paging? Ведь если без пейджинга - то запрос должен вернуть 70 строк. RTFM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 11:18 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семки Берем башку и включаем мозг: // Запрос на Count(*) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Если не сделать Запрос на Count(*), как я узнаю, на сколько страниц мне делать пейджер? Ну, допетрил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 11:26 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
В плане оптимизации, можно, конечно, не делать лишний запрос на Count(*), если первый запрос возвращает Count < PageSize , а не PageSize=50 , как сказали Вы, сынок. Но это только для тех случаев, когда сама выборка меньше PageSize. Код Код: 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. Но, как понимать вот этот пук не в тему? семячкиа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого Ась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 11:49 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 11:52 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУВ плане оптимизации, можно, конечно, не делать лишний запрос на Count(*), если первый запрос возвращает Count < PageSize , а не PageSize=50 , как сказали Вы, сынок. Но это только для тех случаев, когда сама выборка меньше PageSize. Нет, даже это не будет работать, тока щас дотумкал. А вот почему: если мы включили последнюю страницу, то она вправе вернуть меньшее кол-во строк, чем сам PageSize. Поэтому, нужны дополнительные танцы с бубном. Поэтому, нужно (так пейджинги и работают) рабоать всегда с: 1. Count(*) 2. Select ... WHERE <Paging> AND <FILEDS> P.S. Даже сам LinqDataSource + GridView + Paging так работает, профайлером снимал запросы Семячки , Вы куда пропали, сынок? RTFM зачитались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 12:59 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУсемки Берем башку и включаем мозг: // Запрос на Count(*) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Если не сделать Запрос на Count(*), как я узнаю, на сколько страниц мне делать пейджер? Ну, допетрил? да мне как-то пофиг на этот код, выше на скриншоте у тебя два запроса. Накрути свою извилинку на палец и начни вкуривать: первый запрос: 1) select TOP 50 ... from Roles - тут все отлично, получаем первые 50 ролей. 2) select COUNT (*) from ( select TOP 50 ... from Roles ) а тут уже придется поднапрячься и подумать, что это вообще за высер и откуда он взялся? Разберем по частям. Первая часть - это подзапрос, он возвращает как и первый запрос первые 50 записей и сохраняет их во временное хранилище. Вторая часть - это подсчет числа элементов COUNT(*), вот только считает он количество элементов, возвращенное подзапросом. Все ещё накручиваешь на палец? А первый подзапрос у тебя вернет либо 50, либо меньше. Так какой тут пейджинг, а? Может ты в коде все и верно конечно написал, не заметить что пейджинг не работает очень сложно но диагностика у тебя явно выдает какую-то лажу. МСУ Семячки , Вы куда пропали, сынок? RTFM зачитались? не льсти себе, рановато мне ещё к тебе прислушиваться. В отличие от тебя, кододрочера, я спал сном младенца и не думал о сишарпе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 13:43 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкида мне как-то пофиг на этот код, выше на скриншоте у тебя два запроса. Накрути свою извилинку на палец и начни вкуривать: первый запрос: 1) select TOP 50 ... from Roles - тут все отлично, получаем первые 50 ролей. 2) select COUNT (*) from ( select TOP 50 ... from Roles ) Да мне как-то пофиг на Ваши детские потуги, напряги пупок и вдумайся: 1. Сначала выполняется COUNT(*) 2. Потом выполняется TOP 50 / ROW_NUMBER Разницу улавливаем, сынок? Нет? Тогда продолжаем: Вот это: Код: plaintext 1. 2. не выполнение запроса. Вот это: Код: plaintext выполнение запроса. Сначала: count(*), потом пейджинг-запроса. Ясно, милок? Жмурим щечки и идем читать букварь про linq lazy load и что такое отложенный запрос и с чем его кушают семкиа тут уже придется поднапрячься и подумать, что это вообще за высер и откуда он взялся? Чтобы понять, откуда что взялось, нужно обладать хотя-бы минимумом серого вещества и уметь читать код. Итак, проверим, есть ли у Вас серость и умеете ли Вы читать код? Вот код: http://sql.ru/forum/actualpost.aspx?bid=12&tid=717843&mid=8034559&p=1&act=quot#8026941 Что так когда должно выполняться, Count(*) перед общим селектом или общий селект перед каутном? Ась? семкиРазберем по частям. Ага, поехали семкиПервая часть - это подзапрос, он возвращает как и первый запрос первые 50 записей и сохраняет их во временное хранилище. Какое к черту временное хранилище, дубина - первый запрос это Count(*) семкиВторая часть - это подсчет числа элементов COUNT(*), вот только считает он количество элементов, возвращенное подзапросом. Все ещё накручиваешь на палец? А первый подзапрос у тебя вернет либо 50, либо меньше. Так какой тут пейджинг, а? А вторая часть - это как-раз и подзапрос Детсад Все ещё накручиваешь на ухо? Так пейджинг тут причем или не при чем? Упал со стула, программист-любитель мля семкиМожет ты в коде все и верно конечно написал, не заметить что пейджинг не работает очень сложно но диагностика у тебя явно выдает какую-то лажу Да лажа есть. Но не в коде и не в пейджинге, а у тебя в голове. RTFM, милок :) семкине льсти себе, рановато мне ещё к тебе прислушиваться. В отличие от тебя, кододрочера, я спал сном младенца и не думал о сишарпе. Дядя профессионал, выкручиваться как будем после позорного ведра помоев, которые я слил Вам на голову? :) RTFM или семки? Да, Вы выбираете семки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 14:00 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семки, я понимаю, Вас сбил с понталыку порядок запросов на скрине но это не значит, что они в таком порядке выполняются Вот эту строчку: Код: plaintext нужно было написать перед всеми запросами, а у меня эта строка затесалась ниже. В результате, Ваш тупоголовый ум выкакал: семячкиа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого Особенно обратим внимание на выделенное "достаточно первого". Сын, Вы действительно считаете, что для формирования пейджинга достаточно первого запроса, да? :) Если да, то отправляйтесь сразу в сад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 14:05 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семки, а хотите последний хук под ребро? :) Держите: не имеет даже значения, кто перед каким запросом выполнился, один фих они оба должны выполниться. Пошевелите полым мозгом и ощутите разницу запросов: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Так что в диагностике как не было проблем, так и нету. Дошло, нет? Первый запрос - чисто для пейжера. Второй запрос - это реальная порция данных с сервера для текущей PageIndex семячкиа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого Жду ответа на вопрос - достаточно ли первого? :) Ась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 14:17 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Данилка, ну ты смешной, ей богу. Это ж надо был столько букв ВЫСРАТЬ за такой короткий промежуток времени. Я просто сижу и ржу с твоей предсказуемости. Кстати я посмотрел на твой первый пост с кучей заныканного в спойлер говнокода и понял, откуда у тебя этот бред в логе. Но для начала немного отступим и пожуем вместе твои сопли МСУ семкиПервая часть - это подзапрос, он возвращает как и первый запрос первые 50 записей и сохраняет их во временное хранилище. Какое к черту временное хранилище, дубина - первый запрос это Count(*) семкиВторая часть - это подсчет числа элементов COUNT(*), вот только считает он количество элементов, возвращенное подзапросом. Все ещё накручиваешь на палец? А первый подзапрос у тебя вернет либо 50, либо меньше. Так какой тут пейджинг, а? А вторая часть - это как-раз и подзапрос Детсад ага, т.е. конструкцию вида select count(*) from (select top 50 ... from .. ) as t1 скуль сервер у тебя выполняет в порядке 1) count(*), 2) select top 50 ага, ага, привет соседям по палате :) МСУЖмурим щечки и идем читать букварь про linq lazy load и что такое отложенный запрос и с чем его кушают ба, да никак ты за год подтянул свои знания, браво а теперь применим их на практике и вернемся от твоего ВЫСЕРА к сути вопроса: grid.DataSource = result ; gridPager.Render(totalRecords, result.Count() ); вот тут, деточка, в твой лог оказывается и падают последовательно 1) select top 50 2) select count(*) from (select top 50) а кто-то там про отложенные запросы хотел рассказать и как они выполняются, ась? ну и ещё раз для закрепления вернемся сюда и вспомним, что я там тебе написал семкиа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого ну а дальше пошел высер на тему пейджинга, от чего я откровенно недоумевал, причем тут оно вообще семкидеточка, какой пейджинг, если твой второй запрос вернет число <=50, т.е. количество элементов, возвращенное в первом запросе ? тебя видно бес попутал, что считать-то надо.. RTFM давно принимаешь галлюциногенные препараты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 14:27 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкиДанилка, ну ты смешной, ей богу. Это ж надо был столько букв ВЫСРАТЬ за такой короткий промежуток времени. Я просто сижу и ржу с твоей предсказуемости. Ага, а я сижу и ржу с твоей тупости. А что, успех - я Вас научил работать с пейджерами и, самое главное, рассказал что это такое :) семкиКстати я посмотрел на твой первый пост с кучей заныканного в спойлер говнокода и понял, откуда у тебя этот бред в логе. Но для начала немного отступим и пожуем вместе твои сопли Ты ж моя прелесть. Ну ок. семенаага, т.е. конструкцию вида select count(*) from (select top 50 ... from .. ) as t1 скуль сервер у тебя выполняет в порядке 1) count(*), 2) select top 50 ага, ага, привет соседям по палате :) Ооо, да мы реально и код чЕтать не умеем? Врача! А ну-ка по букавкам => какие запросы и в каком порядке выполнятся на сиквеле Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ? Ась? Только отвечайте быстро, не мешкайтесь. Разрешаю читать RTFM. семенавот тут, деточка, в твой лог оказывается и падают последовательно 1) select top 50 2) select count(*) from (select top 50) Ты реально под дурку косишь? Это - правильный запрос, чЕтатель ты наш Сам запрос - это select top 50 А кол-во записей под пеёджер - это select count(*) from (select top 50) + WHERE TOP - Это для PAGE=1 В остальных случаях идет ROW_NUMBER Еще раз осознеам серым веществом этот код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Ась? А кто нам резалтсет генерит? Прааавильно: Код: plaintext 1. 2. можете мне промямлить, как этот запрос отрабатывает в случае PageIndex=0 и в случае PageIndex>0? Ась? Пипец, давно с таким ламером не общался ))) Ну точно, - семки , не более того ;) семкину и ещё раз для закрепления вернемся сюда и вспомним, что я там тебе написал семки а зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого Э, паря? А где ответ на вопрос? :) Я и так знаю, что Вы выпукали "эти" буквы, но ценности в них нет никакой. И это никак не коррелирует с этим: семкидеточка, какой пейджинг, если твой второй запрос вернет число <=50, т.е. количество элементов, возвращенное в первом запросе? тебя видно бес попутал, что считать-то надо.. RTFM Почему? Отвечаю: 1. Запрос Count(*) может вернуть число <=50. И что дальше? 2. Во-вторых, вот в этом высере полоумного: семкиа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого нигде не говорится о каких-либо условиях. Условия сами что-ли на ходу выдумали? И так, повторяю вопрос: Вы действительно считаете, что для формирования пейджинга достаточно первого запроса, да? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 14:48 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУ семенавот тут, деточка, в твой лог оказывается и падают последовательно 1) select top 50 2) select count(*) from (select top 50) Ты реально под дурку косишь? Это - правильный запрос, чЕтатель ты наш Сам запрос - это select top 50 А кол-во записей под пеёджер - это select count(*) from (select top 50) + WHERE TOP - Это для PAGE=1 В остальных случаях идет ROW_NUMBER ох майн гад, это п....ц реально, "смотрю в книгу, вижу слово из трех букв, мужской половой орган называется" - это про тебя и твой скриншот МСУ Еще раз осознеам серым веществом этот код: да причем тут этот твой код ты перевозбужден, тебе моча в мозги ударила МСУ И так, повторяю вопрос: Вы действительно считаете, что для формирования пейджинга достаточно первого запроса, да? :) да причем тут, тваю мать, пейджинг? ты дебил? // мысли в слух не ну а что, зато Данилка от возбуждения облизал свои десять строчек ещё пятьдесят раз за пол часа и узнал, что порядок запросов оказывается не важен, во всем свои маленькие плюсы жаль только в то что ему говорят вникнуть не смог, мда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 14:54 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкиох майн гад, это п....ц реально, "смотрю в книгу, вижу слово из трех букв, мужской половой орган называется" - это про тебя и твой скриншот Это и всё, что можете сказать по делу, сынуля? Не, ну зачем так сливать сразу Побарахтайтесь еще чутка, ок? семкида причем тут этот твой код ты перевозбужден, тебе моча в мозги ударила Да ладно Вам, я веселюсь Ну так что там у нас по делу? Или увиливаете от прямых вопросов, семянко? ) семкида причем тут, тваю мать, пейджинг? ты дебил? Да, сливаете по-чёрному http://sql.ru/forum/actualpost.aspx?bid=12&tid=717843&mid=8035386&p=1&act=quot#8025650 семкине ну а что, зато Данилка от возбуждения облизал свои десять строчек ещё пятьдесят раз за пол часа и узнал, что порядок запросов оказывается не важен, во всем свои маленькие плюсы жаль только в то что ему говорят вникнуть не смог, мда... За то, что семки узнали сегодня: 1. Что такое пейджинг 2. Зачем он нужен 3. Вот этот выперд: семкиа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого реально левый и не в кассу 4. о отложенной (lazy) загрузке данных 5. о порядке выполнения запросов ставлю ему твердую тройку. Но на следующую лекцию попрошу Вас прийти более подготовленным, а то нет интереса с ламосом терки тереть P.S. Упал со стула Ламерам зеленый свет! Да, Семки? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:03 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Самое шизофреничное от семячек, что меня реально порадовало, это семянаа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого и семянада причем тут, тваю мать, пейджинг? ты дебил? То есть, чувак пыжится разбираться в пейджинговом запросе, смотрит и анализирует пейджинговые выборки, читает клиентский пейджинговый код, а потом недоумевая выливает: семянада причем тут, тваю мать, пейджинг? Нет, семки, пейджинг тут абсолютно не при чем. Он тут так, случайно затесался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:06 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУставлю ему твердую тройку. Но на следующую лекцию попрошу Вас прийти более подготовленным, а то нет интереса с ламосом терки тереть Не, тройку не ставлю. Еще раз перечитал вот этот гнусный лепет: семенаа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого этодва, солдат :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:08 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
я вот что ещё хотел спросить ну просто ради интереса, уточнить, так сказать, детали твоих слов тест, так сказать, на внимательность 1) ты вот скриншотик ещё раз запостил 2) кучку перехваченных запросов процитировал 3) и даже написал , процитирую: МСУСам запрос - это select top 50 А кол-во записей под пеёджер - это select count(*) from (select top 50) + WHERE Так вот, тест на внимательность заключается в следующем (нет, не про ошибку в слове пеёджер). Если сопоставить все три пункта, то возникают логичные вопросы: - где в 1) WHERE, как утверждается в 3) ? - где в 2) TOP 50, как утверждается в 3) ? с миру по нитке, но где же истина, ась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:10 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУ То есть, чувак пыжится разбираться в пейджинговом запросе, смотрит и анализирует пейджинговые выборки, читает клиентский пейджинговый код, а потом недоумевая выливает: родной мой, перечитай ещё раз вторую часть этого поста, ну где про Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:12 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкия вот что ещё хотел спросить Да, да, жгиеще семкину просто ради интереса, уточнить, так сказать, детали твоих слов тест, так сказать, на внимательность Заряжай уже :) семкиТак вот, тест на внимательность заключается в следующем (нет, не про ошибку в слове пеёджер). Ну кроме цепляний с буквам словоформ мозг больше ни на что не реагирует уже? ) семкиЕсли сопоставить все три пункта, то возникают логичные вопросы: - где в 1) WHERE, как утверждается в 3) ? - где в 2) TOP 50, как утверждается в 3) ? Чтобы осознать про эти два запроса, нужно, для начала, мне ответить на мои вопросы: http://sql.ru/forum/actualthread.aspx?tid=717843&pg=1#8035312 МСУА ну-ка по букавкам => какие запросы и в каком порядке выполнятся на сиквеле Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Ась? Только отвечайте быстро, не мешкайтесь. Разрешаю читать RTFM. Ну так что, атвичать будем? P.S. Дурик, еще раз повторяю, Вам отрофировал мозг логгер на экшенах - ActionTextWriter. Сначала поймите концепцию, а потом начинайте разевать ротовые полости :) семкис миру по нитке, но где же истина, ась? Это к чему пропищали-то? семкиродной мой, перечитай ещё раз вторую часть этого поста, ну где про ... Перечитал. семкиа потом перечитай ещё два раза, может дойдет наконец Перечитал. Перечитал. И? Пейджинг тут не при чем? P.S. Жесть :) Жги еще :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:19 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семячкоа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого Атвичать буим, клоун? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:21 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУ семкиЕсли сопоставить все три пункта, то возникают логичные вопросы: - где в 1) WHERE, как утверждается в 3) ? - где в 2) TOP 50, как утверждается в 3) ? Чтобы осознать про эти два запроса, нужно, для начала, мне ответить на мои вопросы: т.е. ты какбэ понял что просрал и ответить не сможешь, поэтому слил на другую тему? или недостаточно внимателен, буквочки на скриншоте слишком размыты для твоих очков? МСУ И? Пейджинг тут не при чем? да не причем, идиото, про пейджинг начал говорить ты, я же нигде ничего про него не утверждал Вообще нигде, понимаешь? Это плод твоего воображения. Ты перевозбудился, не в состоянии воспринимать входящую информацию. Сходи остынь, ведерко воды вылей на голову и перестань неистово стучать по кнопкам, клавиатура не выдержит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:26 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкит.е. ты какбэ понял что просрал и ответить не сможешь, поэтому слил на другую тему? или недостаточно внимателен, буквочки на скриншоте слишком размыты для твоих очков? По делу есть что? Я хочу видеть от Вас конкретные ответы (такие, как даю я), а не читать вот этот кал. Если по делу ничего - слив засчитан. семкида не причем, идиото, про пейджинг начал говорить ты, я же нигде ничего про него не утверждал Да ладно? Мистер ламо, как объяснить вот эту чушь, вырвавшуюся из Ваших уст: семкиа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого ? То есть, Вы заранее мне сказали, что в примере для топиккастера (а этот пример - как-раз пейджинговый) - достаточно первого запроса. И после этого Вы пытаетесь уже свильнуть в сторону, типа я не я и жопа не моя. Некрасиво, семки, заднюю включать :) Ну признайтесь, я научил Вас основам пейджинга и основам лези запросов, ась? ) семкиВообще нигде, понимаешь? Это плод твоего воображения. Ты перевозбудился, не в состоянии воспринимать входящую информацию. Сходи остынь, ведерко воды вылей на голову и перестань неистово стучать по кнопкам, клавиатура не выдержит Вот вот вот, и всё в таком духе. А по делу - ноль. То есть, слив засчитываем, тролль? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:34 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУ По делу есть что? Я хочу видеть от Вас конкретные ответы (такие, как даю я), а не читать вот этот кал. а вот я как-то не увидел конкретного ответа на простой вопрос, ась? МСУ семкида не причем, идиото, про пейджинг начал говорить ты, я же нигде ничего про него не утверждал Да ладно? Мистер ламо, как объяснить вот эту чушь, вырвавшуюся из Ваших уст: семкиа зачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого ну и где тут слово "пейджинг", внимательный ты наш? ещё раз шлю тебе мысль, принимай - это плод твоего воспаленного воображения . МСУТо есть, Вы заранее мне сказали, что в примере для топиккастера (а этот пример - как-раз пейджинговый) - достаточно первого запроса. ещё раз двойка за внимательность. Я тебя спросил, зачем из высранных в лог двух запросов нужен второй, если очевидно хватит первого? Как и откуда появились эти запросы пришлось разбираться уже позже, потому что ты в неадеквате пошел палить ерунду, причем даже когда я тебе сказал откуда они, ты все равно это не понял сочувствую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:41 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Сынок, я от тебя ответов так и не увидел. Более того, я не увидел от тебя ни кода ни скриптов, которые говорят, что "так" писать нельзя, а "вот так" - можно. Никакой логической последовательности мыслей, советов, кода, скриптов. То есть, Ваша ценность в этом треде - нулевая. Делаю вывод, что зашли сюда потроллить. Написал модератору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:46 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУ, твоя ценность как девелопера нулевая какой код, какие скрипты? воображение лечить надо. А ведь все началось с простейшего вопроса на внимательность, мда какой же ты легкий на развод, ужас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:50 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
ах да, забыл добавить, МСУ, слив! да ты наверное и сам уже понял, судя по увеличащейся плотности твоего флуда, чтобы увести разговор в другое русло, ничего нового ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 15:55 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Как я понял - данный пример для соединенного слоя. Для отсоединенного слоя мы выполняем те же самые операции за исключением того, что добавляем извлеченные данные в память (DataSet) и при каждом вызове LoadPage() проверяем не была ли уже загружена данная таблица *Предположение :) * Еще один вопрос. В примере для Transact SQL Вы написали Код: plaintext 1. P.S. По работе с SQL имеются небольшие познания, более глубоко изучаю по мере необходимости (давно уже пора взяться да прочитать, какую-нибудь хорошую книгу по SQL), а потому хотелось бы узнать как Вы выводите информацию диагностики ? В приведенном в Вашем коде с использ. LINQtoSQL разобрался, но саму технологию LINQ еще не изучал, потому как считаю что еще не имею достаточного опыта по работе с обычным SQL, а LINQ - это ведь своего рода обертка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 16:41 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Чистяк КонстантинКак я понял - данный пример для соединенного слоя. Для отсоединенного слоя мы выполняем те же самые операции за исключением того, что добавляем извлеченные данные в память (DataSet) и при каждом вызове LoadPage() проверяем не была ли уже загружена данная таблица *Предположение :) * Да, предположение верно :) Но лучше, по возможности, не храните данные в памяти, если их много. Им место в SQL-серверах, файл-серверах. И точка. Чистяк КонстантинЕще один вопрос. В примере для Transact SQL Вы написали Код: plaintext 1. Да, разумеется, туда нужно класть "переменные". Их отруливает пейджер. Старайтесь не отруливать чистыми SQL-командами, используйте ORM - она сама всё за Вас сделаете как надо :) Когда поработаете с ORM подольше, потом начнете вникать, как оно там устроено и как оно там работает. Чистяк КонстантинP.S. По работе с SQL имеются небольшие познания, более глубоко изучаю по мере необходимости Ну это уже лучше, чем вообще ничего, Константин ) Чистяк Константина потому хотелось бы узнать как Вы выводите информацию диагностики ? Это было для примера Вам, чтобы Вы понимали, какие SQL-запросы на данный момент генерируются. В реальных приложениях это не требуется, и это окно нужно выкинуть вообще. Есть специальные утилиты, которыми можно хендлить происходящее на сервере, с гибкими фильтрами и прочей вкусностью - эот тул называется SQL Server Profiler (для сиквела). Чистяк КонстантинВ приведенном в Вашем коде с использ. LINQtoSQL разобрался, но саму технологию LINQ еще не изучал, потому как считаю что еще не имею достаточного опыта по работе с обычным SQL, а LINQ - это ведь своего рода обертка. Ну называйте ее оберткой, не суть :) Для Вас главное - что эта "обертка" генерит Вам запросы. Остальное отложите на потом. Осознание потом наступит ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 16:55 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
МСУ, детка, наступило осознание того, сколько и каких запросов генерят две строчки твоего кода? grid.DataSource = result ; gridPager.Render(totalRecords, result.Count() ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 17:01 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
Это было для примера Вам, чтобы Вы понимали, какие SQL-запросы на данный момент генерируются. В реальных приложениях это не требуется, и это окно нужно выкинуть вообще. Нет я подразумевал под этим вот этот пост Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 17:19 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкиМСУ, детка, наступило осознание того, сколько и каких запросов генерят две строчки твоего кода? grid.DataSource = result ; gridPager.Render(totalRecords, result.Count() ); Детка, сорцы посмотри. Которые уже давно пылятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 17:39 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семки, ответа так и не будет семкизачем в контроле в списке скуль запросов справа нужен второй запрос? достаточно первого Если не будет - слив и игнор троллю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 17:41 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 17:41 |
|
||
|
Извлечение данных по мере надобности
|
|||
|---|---|---|---|
|
#18+
семкиМСУ, расставим точки над i: http://www.sql.ru/forum/actualthread.aspx?tid=718481#8037085 Ок, добро: http://www.sql.ru/forum/actualthread.aspx?tid=718481#8037145 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2009, 17:50 |
|
||
|
|

start [/forum/topic.php?all=1&fid=17&tid=1351566]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 435ms |

| 0 / 0 |
