список может содержать 100 или больше позиций.
Живи и дай жить..
22.10.2011 10:54:55
список может содержать 100 или больше позиций.
Живи и дай жить..
|
|
|
|
22.10.2011 12:30:16
проблема в том, что строк более миллиона и список более 100
все просто в память может не влезть, и перечислять через or 100 номеров некул :( |
|
|
|
22.10.2011 12:32:58
можно пояснить для несведущих создание временной таблицы
т.е. вот эту конструкию: DCount("idTovar","Price"," idTovar<=" & CStr([idTovar])) AS cnt
Живи и дай жить..
|
|
|
|
22.10.2011 12:37:57
по поводу пояснений, даже не скажу как оно работает, :) взято из FAQ и лежит в копилке, в примере расписал на два запроса
|
|||
|
|
22.10.2011 12:39:36
|
|||
|
|
22.10.2011 12:54:35
{quote}{login=}{date=22.10.2011 12:30}{thema=}{post}проблема в том, что строк более миллиона и список более 100
все просто в память может не влезть, и перечислять через or 100 номеров некул :({/post}{/quote} Может я чутка не понял вопрос?, я отбирал именно номера строк, а не определенные данные, если такие огромные данные и нужны определенные значения соответствующие значениям списка, то может попытаться левым join отобрать нужные значения, правда, для access или excel или др. БД это без проблем , то для csv я не знаю, получиться ли соеденить два файла в одном запросе.
|
|||
|
|
22.10.2011 13:17:45
Я бы делал по стандартной схеме, без запроса - номера в словарь, читаем csv построчно (раз огромный), проверяем нужное поле (выбираем через Split() или Mid()) по словарю, если подошло - складываем в массив или пишем сразу в другой текст, можно разделяя табами и с расширением xls.
Так вроде и память не напрягает - там только номера и текущие данные. А файл-результат потом можно обработать как угодно - в Экселе открывается как родной. Но небыстро на миллион, можно сходить перекурить. |
|
|
|
22.10.2011 15:57:46
{quote}{login=Hugo}{date=22.10.2011 01:17}{thema=}{post}Я бы делал по стандартной схеме, без запроса - номера в словарь, читаем csv построчно (раз огромный), проверяем нужное поле (выбираем через Split() или Mid()) по словарю, если подошло - складываем в массив или пишем сразу в другой текст, можно разделяя табами и с расширением xls.
Так вроде и память не напрягает - там только номера и текущие данные. А файл-результат потом можно обработать как угодно - в Экселе открывается как родной. Но небыстро на миллион, можно сходить перекурить.{/post}{/quote} да так и делаю :) вопрос как раз в том - можно ли не читать ненужные данные.. |
|
|
|
23.10.2011 20:44:08
можно сделать так.
создать базу access, сделать связь с csv, первый столбец - номер строки, создать запрос sql, если несколько файлов - создать несколько связей и несколько запросов, все это сохранить - а уже в экселе - прописать подключение к базе аксеса и выгрузкам таблицы запроса через ado - все будет работать достаточно быстро. |
|
|
|
23.10.2011 21:03:16
Так нужно выбрать только строку (целиком) по её порядковому номеру?
Т.е. взять например 100567 строку, не читая других? Сомневаюсь, что через запрос это будет быстрее, чем читая как текст построчно до этой строки с счётчиком. слэн, не померишь время, когда наладишь процесс? Только подключив текст как внешний источник, а не загнав сперва все данные в базу :) |
|
|
|
25.10.2011 10:12:04
ну я думал типа рандомного чтения:
seek 123 read но не получается
Живи и дай жить..
|
||||
|
|
|||