Виведення даних із SQL в Excel

Здрастуйте! Я новачок у Дельфі. Не підкажіть, як вивести з SQL в Excel дані? Бажано з використанням ADO.

Додано пізніше:якщо щось конкретне буде не виходити - питай



отже приклад (для дівчини нічого не шкода)
Допустимо: у тебе є ADOQuery1 в який за запитом SQL відібрані дані та кнопка Button1.
не забуваємо вusesдодатиComObj
P.S.код працює супер швидко, що забезпечено за рахунок передачі даних через варіантний масив єдине що може загальмувати - це виведення контурів таблиціXLRange.Borders.LineStyle := xlContinuous;тому великих обсягах даних краще не юзати (якщо звичайно важлива швидкість)

Поки що написаний вище код не використовувала. Знайшла інший. Після виправлення параметрів на свої, програма видає помилку: "Відбулися помилки під час виконання багатокрокової операції OLE DB. По можливості перевірте значення всіх станів OLE DB"
Як це можна перевірити?
І відразу ось таке ще питання № 2 Не дуже розумію ось це:
Тобто я розумію: із таблиці Телефони вибрати стовпці "Телефон", "Ім'я", "Вулицю", "Дім", "Корпус", "Квартира", а ось що таке далі?

insert - вставити новий запис select - вибрати записи update - редагувати записи delete - видалити записи
читаємо основи SQL
Додано пізніше:думаю тобі для початку піде це
P.S. ну дуже короткий

"insert - вставити новий запис читаємо основи SQL" Соррі, з селектом переплутала.
Про питання №2: У дуже короткому довіднику немає опису терміну(або щоце?) "values". Інтуїтивно я розумію, що ": pName" - це змінна. А звідки вона береться і чому перед нею ":"?

якщо тобі не потрібенInsert, то не потрібен іValues
виклади краще свій неробочий SQL

Якраз Insert потрібен
З помилкою ми розібралися.



І ще одне питання: Мені треба вивантажити всю таблицю. У селекті це *, а ось в інсерті це як описується? Чи потрібне в даному випадку перерахування стовпців (їх близько 30-40 штук) чи можна якось схоже з селектом описати?

ось вона купка проблем із твого експорту вилилася
можна звичайно полупти твій експорт, але. а чому не хочеш мною описаний спосіб випробувати?
1. він універсальний 2. не створюєнових таблиць у базі3. Чи непотрібне перерахування стовпців

1. Тому що я його не розумію зовсім )) Тобто мені потрібно пояснювати кожний рядок, починаючи з перших 4-значних цифр: що це звідки береться? Я не знаю, код прописувати свою базу і т.д.
Мій варіант з іншою базою у мене на комп'ютері працював. Але там було безліч стовпців. Тут же я змінюю під свою базу і все - створюють нову таблицю в моїй базі замість того, щоб вивоїти в ексель.

але якщо хтось доопрацює твій код до того, що тобі потрібно ти виходить теж не зрозумієш і доведеться пояснювати
тобі треба комусь потім пояснити, що написано? чи головне щоб експорт відбувався?
цю процедуру можна трошки доопрацювати і використовувати її в будь-якому проекті без змін а розуміння прийде пізніше
ну постарайся: var – змінні, const – константи і т.д.

А мені не потрібно згодом. Я хочу РОЗУМІТИ, а нетупо списувати. Щоб за необхідності я могла все, що потрібно/захочеться виправити.
Що таке змінні і константи я знаю)))) Я можу тобі написати все, що мені не зрозуміло по твоїм скрипту))
Звідки взялися ці числа? Чому саме вони?
Що це робить? (і відразу навіщо воно потрібне) і звідки взялася crHourGlass? Яке значення має?
Ці два теж не зрозумілі. Знову ж таки звідки беруться значення після знака присвоїти?
Чи це я так розумію перехід на новий столець?
(Інше потім. думаю. що вперше вистачить)
І ГОЛОВНЕ питання: ти сказав, що на великих таблицях він буде гальмувати. ))))

цірозмовляючіконстанти я ввів саме для розуміння, а міг просто передати цифірі
роби два: експорт наш може тривати дуже довго - покажемо як користувачеві на цей часЧасики Скляні
це властивостіCOMоб'єкта, про якідельфінічого не знає, а ми тільки здогадуємося. якщо в тебе ще відкритийVisualBasic, то поколупав його ще трошки , ти все зрозумієш. Впринципі вдельфіє сторінкаServersде висять об'єкти, які надають ці незрозумілості більш зрозумілим способом. Але я їх не користувався.
всі змінні розмовляючі iRowsCount - кількість рядків в Excel файлі
якщо прибереш рядок

Const xlWBATWorksheet = -4167 (&HFFFFEFB9) Member of Excel.XlWBATemplateЄдине, що я з цього зрозуміла, що це якась константа в Екселі А чому у неї таке значення?
Const xlContinuous = 1 Member of Excel.XlLineStyleвзагалінезрозуміле число. Навіщо вводити константу 1? Якщо назва цієї константи у 12 разів довша за цифру 1? :)
Як він тоді зрозуміє, що написано?
Про що свідчить XL?
Що означає цей рядок?
Ще: Я не бачу, де я маю прописати свою базу. І в мене в базі не одна таблиця а близько 30. І шлях до ексель-файлу теж не бачу. :(((((

тому, що інші значення зайняті іншимиконстантами
тобі зрозуміліше так?
всізміннііконстантиповинні бутирозмовляючі, щоб ти сама чи хтось після тебе могли швидко розібратися в коді.xlContinuous>:xl- приставка, що говорить що ми працюємо з ExcelContinuous- (англ.) безперервний.
а що скаже цифра 1.
ніяк не зрозуміє просто спробує викликати вказані тобоюметодиякщо ти помилилася хоч в одній літерці - отримаєшError
розмовляючаприставка (див. вище) -розмовляючане дляDelphi- їй до лампочки -розмовляючадля програміста
iColumnsCount(розмінна, що говорить) i - Integer Columns - колонки Count - кількість
ADOQuery1- це компонент, куди ти відібрала свої дані по SQL

Абстрактно: Через це може вилітати помилка: "Операція не допускається, якщо об'єкт відкритий"
Про всяк випадок: при запуску коду файл встигає відкритися, а до рядка закриття файлу він не доходить. Я роблю програм ресет. Тобто виходить, що його не закриваю при повторному перезапуску. Ідея закрити файл на самому початку чомусь не працює (напевно і не повинна).

абстрактноне варто новепитання= новатема
та й з опису нічого не зрозумів - код - місце помилки це робота зфайлами? якщо так то нове питання причому не в цю гілку або все той жеекспортв Excel

Все та ж робота з Excel.
Я натискаю F9, програма починає виконуватись. У процесі виконання відкривається файл (екселевський), потім зациклюється. Я її зупиняю, щось керую (коли розумію, в чому помилка) і запускаю заново. І після цього він видає таку помилку.

Щодо твого коду. 1. Я так і не зрозуміла, як мені прописати свою базу? ADOQuery1 описується як TADODataSet?
2. Під час виконання вискакує порожня форма. Звідки вона береться?
p.s. я так вважаю, щоб для мене змінні говорили треба десь з півроку програмити. )) Для мене поки що це темний ліс. Зрозуміла, що в назву змінних/констант ви вкладаєте їхню сутність. І не зрозуміла, навіщо константа дорівнює одиниці.

який метод використовуєш? щоянаписав? чисвій?
припустю: помилка відбувається черезаварійногозавершення проги, т.к. об'єктExcelзалишається підвислим і при наступній спробі його створити -ерор.
Ctrl+Alt+Del- Диспетчер завдань - закл.Процеси - бачимо виситьEXCEL.EXE-убиййого
а взагалі щоб такого не відбувалося необхіднаконструкція
Додано пізніше:ти всвоємуприкладі використовуєшADODataSetSourceце я вважаюDataSetв який відібрані дані для експорту
можеш використовувати його ж тоді в моєму коді всі місцяADOQuery1заміни наADODataSetSource
мабуть треба з нуля:
- Створюєш новий проект
- Кидаєш на нього свійADODataSetSourceі мабуть ADOConnetion
- Глянь як ці компоненти у твоєму проекті були налаштовані танастрій тут також.
- Кидаєш кнопку Button1
- Подвійний клік по кнопці - потрапляємо в процедуру натискання кнопки там пишемо мій код
- F9
- Тисні Button1.