Имя: Пароль:
1C
1С v8
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)
спасибо за идею

всем спасибо за участие
2 + 2 = 3.9999999999999999999999999999999...