Читання Excel, ADO, COM і COMSAFEARRAY.

Зміст
  1. Завантаження з Excel.
  2. ADO
  3. СOM з'єднання
  4. COMSafeArray

Загрузка данных в 1С

Доброго часу доби! Сьогодні хотілося б повернутися до заяложеної теми

Завантаження з Excel.

Все нам добре відомий спосіб обробки Excel файлу через COM з'єднання, але є й інші способи обробки даних. Наприклад «ADO», ActiveX Data Objects, дозволяє представляти дані з різноманітних джерел, а так же тип даних, такий як COMSafeArray, про нього досить велика довідка в синтаксис помічника.

Мета цієї теми порівняти 3 різних режиму завантаження даних з Excel, двох різних файлів. В одному файлі буде 4 рядки і 7 колонок, не рахуючи шапки, у другому 12000 рядків і 7 колонок.

Що ж почнемо, першим буде файл з чотирьох рядків і спосіб

ADO

Загрузка данных в 1С 

Результати ось:

Загрузка данных в 1С

Що ж вельми не погано, давайте тепер спробуємо файл на 12000 рядків, результат:

Загрузка данных в 1С 

Швидко.

Тепер перейдемо до способу через

СOM з'єднання

Почнемо з маленького файлу:

Загрузка данных в 1С 

Результат:

Загрузка данных в 1С  

ОГО! Ось така у мене реакція ADO виконався за 60 мсек., а COM за 2 972 мсек. Різниця дуже велика. Що ж буде на 12000 тисячах рядків?

результат:

Загрузка данных в 1С 

Ну, що тут сказати. Все дуже погано

Але не будемо поспішати, у нас є ще третій спосіб

COMSafeArray

Як можна зрозуміти з назви спосіб теж працює за технологією COM. Суть способу в тому щоб вивантажити дані листа і завантажити по колонках. Ось так:

Загрузка данных в 1С 

Результат маленького файлу:

Загрузка данных в 1С 

Трохи швидше звичайного COM способу, але до ADO все ще дуже далеко. Залишилося тільки перевірити цей спосіб на файлі з 12000 рядків. Навіщо запитаєте Ви, тут і так все зрозуміло. Ось тут і буде сюрприз

Обробляємо файл і результат:

Загрузка данных в 1С 

Наполовину швидше, ніж ADO. Чому так? У разі ADO ми зробили запит до листу і отримали набір даних, які записали в таблицю, в разі COM ми перебирали рядок за рядком, а в випадку з COMSafeArray ми вивантажили лист по колонках і так само по колонках завантажили, в останньому випадку кількість рядків не відігравало значну роль. Який спосіб використовувати вирішувати Вам.

Якщо у вас є ще способи - діліться, з задоволенням заміряємо результати.

З іншими корисними темами ви можете ознайомитися в нашій базі знань

Також Ви можете ознайомитися з нашими модулями BAS

Також, наша компанія проводить навчання за курсами:

Навчання проводиться у вечірній час, що дозволить вам не відриватися від роботи або навчання, практикуючим програмістом нашої компанії.

Якщо у вас залишилися питання, Ви завжди можете звернутися до наших аналітиків за телефонами:
(093) 090-70-20
(095) 090-70-20
(068) 090-70-20

( 5 )
Коментарі
Поки немає відгуків
Написати коментар

Зв'яжіться з нами

Якщо ви хочете отримати більше інформації, заповніть цю форму. Ми зв'яжемося з вами найближчим часом.

(095) 090-70-20 (068) 090-70-20 (093) 090-70-20 info@finsoft.ua