Извеждане на данни от SQL в Excel

база данни

Здравейте!
Аз съм нов в Delphi.
Не ми казвайте как да извеждам данни от SQL в Excel?
За предпочитане е да се използва ADO.

извеждане

Добавено по-късно:
ако нещо конкретно не се получи - попитайте

Добавено по-късно

Добавено по-късно

excel

така че пример (за момиче нищо не съжалява)

Да кажем: имате ADOQuery1, в който данните се избират чрез SQL заявка и Button1.
Чрез кликване върху бутона, ние пишем следния код

не забравяйте в използва добавете ComObj

P.S. кодът работи супер бързо, което се осигурява чрез прехвърляне на данни чрез вариантен масив
единственото нещо, което може да замръзне, е изходът на контурите на таблицата XLRange.Borders.LineStyle: = xlContinuous;
следователно е по-добре да не се използва при големи количества данни (освен ако, разбира се, скоростта не е важна)

база данни

Все още не съм използвал горния код.
Намерих друг. След коригиране на параметрите към моите, програмата ми извежда грешка:
"Възникнаха грешки при изпълнение на многоетапна операция на OLE DB. Проверете стойностите на всички състояния на OLE DB, ако е възможно."

Как може да се провери това?

И веднага това е друг въпрос номер 2
Наистина не разбирам това:

Тоест, разбирам: от таблицата „Телефони“ изберете колоните „Телефон“, „Име“, „Улица“, „Къща“, „Сграда“, „Апартамент“, но какво следва?

Добавено по-късно

вмъкване - вмъкване на нов запис
select - изберете записи
актуализация - редактиране на записи
изтриване - изтриване на записи

четене на основи на SQL

Добавено по-късно:
Мисля, че това първо ще ви отива

P.S. е, много кратко

извеждане

"вмъкване - вмъкване на нов запис
четене на основи на SQL "
За съжаление, смесен с избрания.

Относно въпрос номер 2:
В много кратка справка няма описание на термина (или какво е това?)
"стойности".
Интуитивно разбирам, че ": pName" е променлива. НО откъде идва и защо е ":" ?

данни

ако нямате нужда Поставете, не е необходимо и Стойности

изложете по-добре вашия неработещ SQL

excel

Необходима е само вмъкване

Разбрахме грешката.

Добавено по-късно

excel

извеждане

И още един въпрос:
Трябва да зарежа цялата маса.
В избраното е *, но във вмъкването как е описано? Необходимо ли е в този случай да се изброят колоните (има около 30-40 от тях) или е възможно да се опише нещо подобно със селектор?

Добавено по-късно

ето го, куп проблеми от вашия износ се разляха

можете, разбира се, да вземете своя износ, но.
защо не искате описаният метод да опита?

1. той е универсален
2.не създава нови таблици в базата данни
3. Не трябва да изброите колони

Добавено по-късно

1. Защото изобщо не го разбирам))
Тоест, трябва да обясня всеки ред, започвайки с първите 4-цифрени числа: откъде идва това? Не знам кода, за да регистрирам базата си и т.н.

Моята версия с различна основа работи на моя компютър. Но имаше множество колони. Тук сменям за моя база и това е - те създават нова таблица в моята база, вместо да експортират в Excel.

excel

но ако някой модифицира вашия код според това, от което се нуждаете
не разбирате нито едното, нито другото и трябва да обясните

трябва ли да обяснявате на някого по-късно какво е написано? или основното е, че се извършва износът?

тази процедура може да бъде леко модифицирана и използвана във всеки проект без промени
и разбирането ще дойде по-късно

добре опитайте: var - променливи, const - константи и т.н.

данни

Нямам нужда от това по-късно. Искам да РАЗБИРАМ, а не глупаво да отписвам.
За да мога, ако е необходимо, да направя всичко, което ми трябва/искам да поправя.

Какви са променливите и константите, които познавам))))
Мога да ви напиша всичко, което не разбирам от вашия скрипт))

Откъде идват тези цифри? Защо точно те?

Какво прави? (и веднага защо е необходимо) и откъде идва crHourGlass? Какво е нейното значение?

Тези двамата също не са ясни. Отново, откъде идват стойностите след знака за присвояване?

Ето как разбирам прехода към нова столица?

(останалото по-късно. Мисля. Това ще е достатъчно за първи път)

И ОСНОВНИЯТ въпрос: казахте, че на големи маси ще се забави.
Колко мислите, че ще му отнеме да обработи около 80 000 реда с 30-40 колони (които са предимно редове (а не числа)) ?
))))

извеждане

тези говорейки Представих константите само за разбиране, но можех просто да предам числата

направи две:
нашият износ може да продължи много дълго - ние ще покажем как на потребителя за това време ClockGlass (Часова чаша)

това са свойства COM обекти, за които делфи не знае нищо, но само предполагаме.
ако вашият все още е отворен VisualBasic, след това да го копаете още малко, ще разберете всичко.
Принцип в делфи има страница Сървъри където висят обекти, които осигуряват тези обърквания по по-разбираем начин. Но не ги използвах.

всички променливи говорят
iRowsCount - брой редове във файл на Excel

ако премахнете линията

извеждане

Const xlWBATWorksheet = -4167 (& HFFFFEFB9)
Член на Excel.XlWBATemplate

Единственото нещо, което разбрах от това, е, че това е някаква константа в Excel
Защо тя има такова значение?

Const xlContinuous = 1
Член на Excel.XlLineStyle

общо неразбираемо число. Защо да въведем константа, равна на 1? Ако името на тази константа е 12 пъти по-дълго от числото 1?:)

Как тогава ще разбере написаното?

За какво говори XL?

Какво означава този ред?

Още:
Не виждам къде трябва да регистрирам базата си. И в моята база данни има не една таблица, а около 30.
И аз също не виждам пътя към файла на Excel.
: ((((

данни

а защото други ценности са заети от други константи

толкова много разбираш?

всичко променливи и константи трябва да е говорейки, така че вие ​​или някой след вас можете бързо да разберете кода.
xl Непрекъснато:
xl - префикс, който казва, че работим с Excel
Непрекъснато - (инж.) непрекъснато.

и какво ще каже числото 1.

няма да разбере
просто се опитайте да се обадите на тези, които сте посочили методи
ако сте сгрешили дори в едно писмо, ще получите Грешка

говорейки префикс (виж по-горе) - говорейки не за Делфи - не й пука - говорейки за програмиста

iColumnsCount (говореща променлива)
i - Цяло число
Колони - колони
Брой - сума

ADOQuery1 - това е компонентът, в който сте избрали вашите SQL данни

данни

Абстрактно:
Поради това, което грешката може да излети:
„Операцията не е разрешена, ако обектът е отворен“

За всеки случай: когато кодът се изпълни, файлът успява да се отвори, но не стига до реда за затваряне на файла. Правя програми за нулиране. Тоест се оказва, че не го затварям, когато го рестартирам отново. Идеята да затворите файла в самото начало по някаква причина не работи (вероятно не би трябвало).

база данни

абстрактно не си заслужава
ново въпрос = ново предмет

и не разбрах нищо от описанието - кодът е мястото на грешката
това е работа с файлове? ако е така, тогава нов въпрос, а не в тази тема
или същото износ в Excel

данни

Все едно и също работи с Excel.

Натискам F9, програмата започва да се изпълнява. В процеса на изпълнение файлът (excel) се отваря, след което се завърта. Спирам го, коригирам нещо (когато разбера каква е грешката) и го рестартирам. И след това изхвърля тази грешка.

база данни

Относно вашия код.
1. Все още не разбирам как да регистрирам базата си?
ADOQuery1 се описва като TADODataSet?

2. Когато се изпълни, изскача празна форма. От къде идва?

п.с. Предполагам, че за мен променливите, които говорят, е необходимо да се програмира за около шест месеца. )) За мен все още е тъмна гора.
Разбрах, че вие ​​поставяте тяхната същност в името на променливи/константи.
И не разбрах защо константата е равна на единица.

данни

какъв метод използвате? тази, която Аз написа? или Вашият?

познайте:
грешката възниква поради спешен случай завършване на програмата, т.к. предмет Excel остава заседнал и следващия път, когато се опитате да го създадете - грешка.

Ctrl + Alt + Del - Диспечер на задачите - раздел Процеси - вижте обесване EXCEL.EXE - убий него

но като цяло, за да не се случи това е необходимо дизайн

Добавено по-късно:
Вътре си неговата използвайте пример ADODataSetSource
това предполагам DataSet в която са избрани данните за експортиране

можете да го използвате
след това в моя код всички места ADOQuery1 замени с ADODataSetSource

очевидно е необходимо от нулата:

  • Създайте нов проект
  • Хвърляш си ADODataSetSource и очевидно ADOConnetion
  • Вижте как тези компоненти са конфигурирани във вашия проект и настроението тук е същото.
  • Хвърляте бутона Button1
  • Щракнете двукратно върху бутона - влизаме в процедурата за натискане на бутона
    там пишем моя код
  • F9
  • Натиснете Бутон 1.