Delphi sql запрос к excel
Ну вот не долго думая, подошла вторая часть по работе с ADO в DELPHI на примере БД — MS Excel. В данной статье мы рассмотрим добавление и редактирование данных, так как с удалением тут возникли проблемы, в связи с тем, что данный драйвер не поддерживает удаление, ну с удалением мы что-нибудь подумаем. Сразу хочу сказать, что необходимо еще одно поле в нашей Excel-книги — id, и нам придется вручную его заполнять, что не есть хорошо, но ничего тут сложного нету, просто при инициализации данных, мы просто получаем количество записей в нашей БД, а затем при добавлении добавляем это значение в поле id. Вот и у нас будет получаться уникальное значение, что поможет нам при редактировании. Тут как всегда, думаю что писать на OnCreate нашей главной формы понятно, обычный запрос, только затем еще необходимо получить количество записей в нашей БД, что мы делаем с помощью RecordCount. Смотрим код события OnCreate формы ниже
Для добавления данных все тоже самое, что и было в ADO с MS Access, только здесб повторюсь надо учитывать id вручную нам, в а MS Access все было подругому, там был счетчик, что облегчало нам работу. Код добавления смотрим ниже
Ну я тут еще сделал дополнительный запрос, для обновления данных в TDBGrid.Для редактирования данных нам надо получить сначала id, для этого на событие компонента TDBGrid - OnCellClick напишем
У меня id поле находится в книге Excel в 3 столбце, но так как нумерация в ADO столбцов начинается с 0, то я указал Fields[2]. Для редактирования данных применим туже технологию, что и в случае с MS Access
И также как видем, дополнительный запрос на обновления данных, id у нас уже получен, так что все обновиться. Да и не забыли ведь, что в комоненте TADOQuery задайте в свойстве Parameters новый параметр — pid с типом данных ftInteger. Ну и наконец-то попробуем какой-нибудь не большой поиск организовать, здесь я использовал параметр SQL-запроса — LIKE, то есть найдет все записи с совпадениями, что мы указываем. Смотрим код ниже
Можно организовать поиск по полному совпадению просто через WHERE, но пока что так. Теперь понимаете, что использовать MS Excel в качестве БД тут не логично, много чего вручную контролировать нужно, ограниченное количество записей, да и с удалением проблемы, но зато отлично тут можно написать конвертацией данных, а также экспорт в Excel например или в MS Access из MS Excel. Но мы пока что займемся экспортом в Excel, а затем напишем свой конвертатор. Но это в следующий частях про MS Excel как БД в Delphi.
Похожие записи:
Здравствуйте, в этой статье я расскажу Вам, как использовать в своем приложении (программе) на Delphi БД в виде MS Excel. Да да именно MS Excel. Тут ничего сложного нету. Для начала давайте заполним наш лист в MS Excel. Первая строка в каждом столбце всегда бу.
Всем здравствуйте, в этой статье я хотел бы снова обратить внимание на Базы данных, а в частности работа с Базами данных по технологии ADO. Когда пользователь создает приложение на Delphi, работающего с СУБД, к которой присоединяется по технологии ADO, то к фа.
Всем привет, и вот мой первый урок, думаю урок полезный, так как работа с базами данных в Delphi очень важно, а тем более Access на мой взгляд самая легкая база данных, с которой можно работать в Delphi. В этой статье я расскажу Вам как эту самую Базу данных A.
Здравствуйте. Вобщем имеется файл с данными в Excel. Приведу простой пример, мне необходимо просуммировать итоговые данные по повторяющимся кодам подразделений. Сразу перейду к вопросу: можно ли средствами Delphi как то применить SQL запрос непосредственно к данным внутри файла Excel? Или если нет, то как можно создать временную таблицу, чтобы в нее поместить данные из Excel, а после применить SQL запрос к этой временной таблице. На самом деле у меня там очень много полей и много условий, и даже SQL-запрос будет выглядеть немаленьким, не говоря уж о том, что записей в таблице может быть порядка 50 000, поэтому хотелось бы найти решение, которое не будет сильно сказываться на скорости работы программы. Может кто нибудь делал уже что-то подобное? Насколько знаю с версии 2007го года Excel поддерживает SQL запросы, но нигде не могу найти, как обратиться к ним средствами Delphi.
Выполнение запроса SQL
И так в прошлой проблеме мы так и не смогли найти решения,именно по этому я прошу вас чтобы вы.
Выполнение SQL запроса.
День добрый. У меня проблема в выполнении sql запроса. Вроде все сделано по тысяче одинаковых.
Выполнение запроса sql
При экспорте или при выполнение запроса, если имя фотографии повторяется(поле ph.naimphoto), его не.
Excel не самое хорошее место для хранения большого количества данных. Лучше, действительно, перенести данные из Excel в MS Access или SQlite и работать с ними там.
Excel не самое хорошее место для хранения большого количества данных. Лучше, действительно, перенести данные из Excel в MS Access или SQlite и работать с ними там.
Да это понятно, но это не от меня зависит. У нас в организации используется довольно таки объемная программа, написанная специально для нашего учреждения, и она умеет выгружать данные только в Excel, и не в том виде который нужен для статистов. Вот меня и попросили, чтобы я написал небольшую программу, которая автоматически будет считать все данные в этих выгрузках и выводила бы это в удобном для них виде.
Здравствуйте! В моих целях стоит выгрузка данных из таблицы базы данных MS SQL Server через Delphi в Excel. Однако, при выполнении приложенного кода, выскакивает ошибка "Invalid variant operation": Excel создает новый лист, указывает в качестве "заголовков" названия от "Excel.Range", но данные из БД не приходят.
Подскажите, пожалуйста, в чем может быть проблема?
Выгрузка таблицы из sql в excel - MS SQL Server 2005
MS SQL Server 2005, Среда SQL Server Management Studio Express. Проблема в выгрузке таблицы из sql.
Выгрузка данных из SQL Server в Excel
Как сделать запрос через OPENROWSET желательно без OLEDB Добавлено через 4 часа 15 минут insert.
Запись данных в базу данных SQL и выгрузка таблицы в форму
Нужно сделать 2 формы, одну с несколькими textBox'ами, чтобы при нажатии кнопки информация.
Выгрузка данных из таблицы MS Access в MS excel
Добрый день , форумчане. Столкнулся с такой проблемой - имеется база данных, в ней несколько.
Поправила, но, собственно, ошибка выскакивает все та же "член группы не найден"
Решение
В какой строке хоть ошибка?
Добавлено через 8 минут
18 и 19 строки уберите.
Добавлено через 3 минуты
Использовать Repeat для цикла по записям плохая идея. Если записей нет, то получите ошибку при обращении к несуществующим данным, надо использовать:
Спасибо большое! Все норм поправила и ошибок больше нет. Осталось разобраться, почему данные так и не приходят
Выгрузка данных из таблицы Paradox в Excel
Здравствуйте, помогите пожалуйста, есть таблица Paradox - Посещаемость. В неё по кнопке добавляются.
Выгрузка данных из таблицы SQL в log файл
Ребят, подскажите пожалуйста: как данные из таблицы sql записывать в Log файл при каждом их.
Выгрузка всех данных строки таблицы Access в файл Excel
Приветствую! Подскажите пожалуйста как сделать: Есть форма для заведения информации. Нужна.
Перенос данных из Excel в две таблицы баз данных SQL-Server
Люди добрые помогите пожалуйста. Есть таблица Excel, я сделал перенос всех данных из нее в таблицу.
Экспорт данных из запроса или таблицы используя джоб MS SQL в Excel
Добрый день. Никак не могу сделать авто-выгрузку в файлы эксель из SQL. Запрос select * from.
Выгрузка SQL отчетов в Excel
Всем привет ) На досуге нужда меня заставила освоить VBA для решения задачи выгрузки SQL.
Вообще вариантов взаимодейсвтия Excel и MySQL нашлось два: использовать драйвер ODBC или воспользоваться технологией DataSnap. Сегодня рассмотрим вариант с ODBC.
Для демонстрации работы программы нам потребуется сервер MySQL. Обычно для таких случаев я использую джентельменский набор для веб-разработчиков Denwer. Поэтому, рекомендую и Вам его скачать, перейдя по этой ссылке. Я скачал и установил Denwer с PHP 5.2. В принципе это не важно - главное, чтоб был MySQL.
Как устанавливать Denwer и настраивать MySQL я не буду, т.к. все подробные инструкции есть на официальном сайте, а перейду сразу к созданию базы данных для тестирования. Итак, запускаем phpMyAdmin и создаем новую базу данных с названием demobase . Для примера создадим БД по статистике ключевых слов (не важно каких и для кого), база данных будет содержать всего одну таблицу, созданную с помощью следующего SQL-запроса:
Здесь мы создали таблицу keywords и сделали две записи в таблицу по двум ключевым словам. Теперь откроем MS Excel и создадим таблицу с точно такими же полями, но содержащую данные по другим ключевым словам:
Файл Excel сохраним с названием mykeywords.xls.
Теперь надо установить драйвер ODBC. Для этого можно воспользоваться утилитой mysql-connector-odbc-5.1.x-win32. После того как драйвер MySQL установлен, создаем DSN, в котором указываем информацию для доступа к таблице keywords в базе данных demobase. Для создания DSN воспользуемся стандартными средствами Windows XP:
Открыть в полный размер' href="http://www.webdelphi.ru/wp-content/uploads/2010/03/odbc1.jpg" target=_blank>Запускаем ODBC Data Source Administrator и в появившемся окне жмем кнопку Add или "Добавить" (для русских версий Windows):
Открыть в полный размер' href="http://www.webdelphi.ru/wp-content/uploads/2010/03/odbc_mysql1.jpg" target=_blank>Теперь, в появившемся окне записываем все данные по источнику данных, как показано на рисунке:
Теперь приступим непосредственно к программированию в Delphi . Создадим следующее приложение:
Открыть в полный размер' href="http://www.webdelphi.ru/wp-content/uploads/2010/03/delphi1.jpg" target=_blank>В левой части окна размещаются компоненты для доступа к файлу Excel, в правой - к MySQL. Представленные на рисунке компоненты:
- DBGrid (страница Data Controls) - 2 шт.
- ExcelDS и MySQLDS - компонены DataSource со страницы Data Access
- ExcelQuery и MySQLQuery - 2 компонента ADOQuery со страницы dbGO.
Настройка компонентов для доступа к Microsoft Excel выглядит следующим образом. У первой таблицы DBGrid в свойстве DataSource указываем ExcelDS, тот же ExcelDS указываем и у DBNavigator"а. У ExcelDS в свойстве DataSet указываем ExcelQuery. Аналогичным образом настраиваем компоненты в правой части (относящиеся к MySQL).
Теперь необходимо настроить свойство ConnectionString у компонента ExcelQuery. Выделяем строку со свойством в Object Inspector"е и конфигурируем строку подключения:
Открыть в полный размер' href="http://www.webdelphi.ru/wp-content/uploads/2010/03/ConnectionString1.jpg" target=_blank>Открыть в полный размер' href="http://www.webdelphi.ru/wp-content/uploads/2010/03/jet1.jpg" target=_blank>
Провайдер связи JET 4.0. может использоваться для доступа к различным данным, в том числе к Microsoft Excel или Access. После того как поставщик данных выбран, жмем "Далее" и делаем дополнительные настройки:
Теперь это свойство указывает на то, что мы будем работать с документом Excel в формате Excel97-2003. Также на вкладке " Дополнительно " укажем тип доступа ReadWrite . Теперь ещё раз проверяем подключение, радуемся:
Как видите, пока ничего сверхъестественного не происходит - все просто и давным-давно известно, но только чуть-чуть подзабыто Двигаемся дальше. Теперь настраиваем доступ к MySQL - свойство ConnectionString у MySQLQuery. В окне " Свойства связи с данными " указываем Microsoft OLE DB Provider for ODBC Drivers .
На вкладке " Подключение " указываем ранее созданные MySQL_Connection, в поле " Пользователь " вписываем root и ставим галку напротив " Пустой пароль ":
Теперь, после успешного тестирования соединения, переходим к свойству SQL и записываем в него запрос следующего вида:
SELECT * FROM keywords
Теперь можете выставить к MySQLQuery свойство Active в True и увидите, что в DBGrid вывелись записи ранее внесенные в базу данных MySQL.
Остается самая малость - вытащить из листа Excel данные и скопировать их в базу MySQL. А как это сделать? Очень просто. С помощью ExcelQuery манипулировать данными в Excel также просто, как и с любой другой дазой данных. Вот запрос на получение данных из файла mykeywords.xls.
То есть в качестве таблицы БД выступает отдельный лист. Запишите этот запрос в свойство SQL компонента ExcelQuery и выставьте свойство Active в значение True. У меня получилась следующая картинка:
Теперь напришем следующий обработчик у кнопки (см. рисунок - кнопка "Скопировать текущий элемент"):
Вот так запросто можно копировать данные из Excel в MySQL. Здесь я показал Вам самый простейший пример, наподобие ручного копипаста данных. Но, если проявить совсем чуть-чуть смекалки и умений работы с базами данных, то можно запросто перекидывать из Excel листы целиком или хотябы по нескольку записей за раз.
Аналогичным образом, кстати, можно обрабатывать и листы Excel 2007 в Delphi.
Здравствуйте, в этой статье я расскажу Вам, как использовать в своем приложении (программе) на Delphi БД в виде MS Excel. Да да именно MS Excel. Тут ничего сложного нету. Для начала давайте заполним наш лист в MS Excel. Первая строка в каждом столбце всегда будет брать наше приложение как название столбцов, то есть оно не берет название столбцов такое — A, B, C и так далее. Так что в первсой строке столбца А и столбца B я написал ФИО и Оценка соответственно для каждого столбца. Это и будут наши заголовки, затем ниже я заполнил данные, которые будут в моей БД, ну это фамилии и оценки сами напиши. Так БД у нас готова. Теперь создадим к ней подключение. создается подключение похоже как и в MS Access, так что тут ничего сложного нету. На форме у нас старые компоненты это
Как связывать эти компоненты я расскажу быстро, так как это уже было сказано мною.
В TADOConnection установим свойство LongPromt в False. Вроде бы небольшую настройку сделали. Теперь приходим к непосредственному подключени. В свойстве TADOConnection - ConnectionString нажимаем на кнопку «…«, далее у нас появляется окно вида
Нажимаем на кнопку «Build…» и появляется следующее окно
В данном окне выбираем следующего провайдера: Microsoft OLE DB Provider for ODBC Drivers и нажимаем кнопку «Далее>>» и видем следующее окно
В этом окне сразу ставим указатель на «Использовать строку подключения» и нажимаем на кнопку «Сборка«, после чего появляется окно
В этом окне переходим на вкладку Источник данных компьютера, в появившемся списке выбираем — Файлы Excel, а точнее жмем левой кнопкой мыши по этой сроке двойным щелчком и в появившемся окне указываем путь к нашей Excel-книги, которую мы создавали. После этого нажимаем на пноку «Ok«. Все подключение у нас готово. Хочу добавить еще, если у Вас файл Excel, где ваша таблица находится лежит в одном каталоге с программой, то в свойстве компонента TADOConnection - ConnectionString будет прописан путь к Вашему Excel-файлу, стерите путь, а оставьте просто имя Вашего Excel файла с расширением, а в свойстве DefaultDataBase этого же компонента, напишите имя вашего Excel-файла с расширением. Тогда при запуске вашего приложения, не будет возникать ошибок с неправильно заданым путем к вашей БД. Далее в TDBGrid нажмем по нему двойным щелчком и в появившемся окне создаим 2 строки, это наши столбцы будут. А создаются они путем нжатия в данном окне на кнопку «Add New (Ins)«. Далее выделив кажду строку в свойстве FieldName для первой строки напишем — ФИО, так как в Excel-файле я именно так написал в первую строку название столбца (для ячейки A1 я так написал), а выделив вторую строку, что создали в TDBGrid, в свойстве FieldName напишем — Оценка, так как именно я такое название столбца написал (в ячейке А2 я так написал). Все теперь нам можно активировать наши данные. Для этого на событие главной формы — OnCreate напишем следующее
Как видите все тот же запрос, только вместо имя таблица, как у нас было в MS Access мы указываем имя листа нашего в Excel, заключив его в квадратные скобки и поставив в конце знак $. Как видите ничего сложного нету. В следующей статье про БД MS Excel я расскажу как вставлять данные, редактировать и так далее.
Похожие записи:
Ну вот не долго думая, подошла вторая часть по работе с ADO в DELPHI на примере БД — MS Excel. В данной статье мы рассмотрим добавление и редактирование данных, так как с удалением тут возникли проблемы, в связи с тем, что данный драйвер не поддерживает удален.
Всем здравствуйте, в этой статье я хотел бы снова обратить внимание на Базы данных, а в частности работа с Базами данных по технологии ADO. Когда пользователь создает приложение на Delphi, работающего с СУБД, к которой присоединяется по технологии ADO, то к фа.
Всем привет, и вот мой первый урок, думаю урок полезный, так как работа с базами данных в Delphi очень важно, а тем более Access на мой взгляд самая легкая база данных, с которой можно работать в Delphi. В этой статье я расскажу Вам как эту самую Базу данных A.
Читайте также: