|
v8: Из XLS через ADODB: есть ли ограничение в количество recordset
| ☑ |
0
pozdeev-artem
08.08.12
✎
16:51
|
Доброго времени.
В файле xlsx немногим более 100 000 строк.
Нужно из этого файла считать все строки и, грубо говоря, загрузить в базу.
Загрузку делаю через ADODB.
На 39491 строке файла метод recordset.EOF() возвращает "0" вместо ожидаемого 1.
Подскажите пожалуйста, почему "файл заканчивается"?
|
|
1
pozdeev-artem
08.08.12
✎
16:57
|
Извините, хотел написать:
На 39491 строке файла метод recordset.EOF() возвращает "1" вместо ожидаемого 0
|
|
2
MadHead
08.08.12
✎
16:58
|
Попробуйте считывать данные по 30к строк
|
|
3
Maxus43
08.08.12
✎
17:04
|
39491 строка - не пустая случаем? ниже выше строки заполнены?
|
|
4
shuhard
08.08.12
✎
17:06
|
(0) ограничений нет
но есть "кривые файлы"
которые эмулируют EOF
|
|
5
Serginio1
08.08.12
✎
17:15
|
Попробуй
Select * from ["+ИмяЛиста+"$A39491]")
Или
Select * from ["+ИмяЛиста+"$A39491:AI71000]")
|
|
6
smaharbA
08.08.12
✎
17:24
|
есть ограничение в полях
|
|
7
pozdeev-artem
08.08.12
✎
20:38
|
(2) Именно на строке 39491 получаю EOF независимо от размера порций. Пробовал взять по 10 строк.
(3) Строка 39491 не пустая, с 1-й по последнюю строки все данные заполнены
(4) По описанию похоже на эту проблему. Подскажите пожалуйста, как с этим бороться?
(5) Пробую...
(6) О каких ограничениях идет речь?
|
|
8
МихаилМ
08.08.12
✎
21:50
|
огласите версии по
формат файла источника, тип и версию провайдера oledb.
|
|
9
pozdeev-artem
08.08.12
✎
22:40
|
оглашаю:
файл xlsx,
в первой строке листа с данными вписаны без пробелов латиницей заголовки колонок;
Provider=Microsoft.Jet.OLEDB.4.0;
|
|
10
pozdeev-artem
08.08.12
✎
23:27
|
Изменил Provider=Microsoft.Jet.OLEDB.4.0;
на Provider=Microsoft.ACE.OLEDB.12.0; - более новая версия
образец взял тут Книга знаний: Чтение данных XLS, XLSX запросом без установленного Excel
и взлетело
|
|
11
pozdeev-artem
08.08.12
✎
23:28
|
(8)
спасибо за идею
всем спасибо за участие
|
|