|
25.09.2006, 13:59 | #1 |
Участник
|
Цитата:
Сообщение от Gustav
По классу - пара пожеланий. Первое. Я бы объединил методы getFieldValue и getNamedFieldValue в один универсальный getFieldValue. И плюс к этому нумерацию полей начал бы с единицы, невзирая на то, что в самом ADO первое поле - 0. Понимаю, что вопрос концептуально-идеологический. Я сам метался между 0 и 1, но в конце концов остановился на 1. Ну и что, что лишняя операция вычитания, зато получается нормальный наглядный натуральный ряд (блин, ненавижу циклы от 0 до Count-1).
Цитата:
У меня в "инструментальном ящичке" в некотором классе есть противоположный метод - setFieldValue, привожу его в качестве подспорья-иллюстрации. Воспользуйтесь при желании.
PHP код:
PHP код:
Цитата:
Второе пожелание. В методе getRecordCount я бы не торопился возвращать -1 в случае невозможности определения кол-ва записей через ADO. Всё же класс посвящен Excel'ю, а он нам не чужой. Можно, например, воспользоваться в Excel методом Range.CurrentRegion и далее Rows.Count минус первая заголовочная строка (если она есть). Ну, как-то так...
PHP код:
В общем, мне кажется, идеологически правильнее использовать для определения количества записей средства ADO, а не обходные маневры с использованием COM-интерфейсов Excel. Во вложении - тестовый job, использованный для измерения скорости. Обновленный класс можно найти в первом сообщении темы. Последний раз редактировалось gl00mie; 08.01.2007 в 23:45. |
|
|
За это сообщение автора поблагодарили: blokva (2), Hans (1), konopello (1), demon46 (1). |
25.09.2006, 14:43 | #2 |
Moderator
|
Цитата:
Это означает, что ПРИ ЖЕЛАНИИ в случае больших списков полей можно написать так: Код: setFieldValue('НужноеПоле' , valNeed , 1 ); setFieldValue('ОченьНужноеПоле' , valVeryNeed , 2 ); .............................................................. setFieldValue('НаинужнейшееПоле' , valNeedest , 56 ); setFieldValue('НеТакоеВажноеПоле', valNotSoImportant , 57 ); Код: setFieldValue('НужноеПоле' , valNeed ); // 1 setFieldValue('ОченьНужноеПоле' , valVeryNeed ); // 2 .............................................................. setFieldValue('НаинужнейшееПоле' , valNeedest ); // 56 setFieldValue('НеТакоеВажноеПоле', valNotSoImportant ); // 57 |
|