Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > ODBC Excel ГЛЮКИ!!!


Автор: unter 31.8.2005, 21:20
Помогите пожалуйста! http://www.safehack.boom.ru
Помогите пожалуйста!
У меня проблема в ледующем:
Есть база данных в таблице Excel 2000 (лист1, лист,лист3...листN)
Каким образом можно производить операции в ячеках этой книги из приложения C++ Builder 6. smile
Желательно конечно же загнать это все в DBGrid и дальше импортировать куда угодно, но может у Вас есть другое мнение. smile
Макросы применять не желательно. Попытался скачать компонент XLSreadWrite, но почему то не мог поставить (никакой вкладки не появилось.). smile smile
Подключение через ODBC ничего не дает. DataSource не видит TableName.
Через ODBC не знаете как подключить?
Если у вас есть исходники с примерами работы с файлами Excel просьба опубликовать. smile
Всем заранее спасибо. smile

Автор: chaos 1.9.2005, 06:36
вот самый простой пример
Код

#include "stdafx.h"
#include "afxwin.h"
#include "iostream.h"
#include "afxdb.h"

void main()
{
    CDatabase cdbMyDB;
    cdbMyDB.Open("New Excel Data Source");
    cdbMyDB.ExecuteSQL("CREATE TABLE mydata (FirstName TEXT,LastName TEXT)"); 
    cdbMyDB.ExecuteSQL("INSERT INTO mydata (FirstName,LastName) VALUES('Kaev','Artem');");
    cdbMyDB.Close(); 
}

Автор: Coocky 1.9.2005, 11:50
chaos
Читай внимательно!

Цитата(unter @ 31.8.2005, 21:20)
Каким образом можно производить операции в ячеках этой книги из приложения C++ Builder 6

smile
Цитата
вот самый простой пример


smile
Думаю для него он сложный smile

Автор: unter 1.9.2005, 13:41
А есть другие варианты???

Автор: Coocky 1.9.2005, 13:52
unter
Жди, когда прийдут Билдеровцы..

Автор: unter 1.9.2005, 14:01
Буду очень признателен за помощъ начинающему!!!!
Добавлено @ 14:02
Может быть кто-то уже много работал с таблицами Excell и у него есть наработки разных вариантов. Помогите примерами!!! Спасибо!!!

Автор: unter 2.9.2005, 09:03
Спасибо за исходник. smile Только вот мне кажется что он не на C++ Builder а скорее на VCL написан, поэтому и подключаемые библиотеки ругаются.
А объект CDatabase сам Builder и в помине не знает, что такое.
В его роли может выступать алиас, но ведь по коду можно сказать что алиас - это CdbMyDb. smile
Поэтому если можно поглядеть бы настоящий пример на Builder. А конкретно: работа с ячейками (чтение\запись\удаление строк и диапазонов ячеек).
Спасибо. smile

Автор: chaos 2.9.2005, 09:23
блин!!! помочь то я те не могу тк на работе нет сбилдера, а дома инет жалко))(6р за метр) ну ладно
вот тебе для начала пару ссылок
http://www.rxlib.ru/WinLesson/bles1.htm
http://www.rxlib.ru/WinLesson/bles1_2.htm
http://www.rxlib.ru/WinLesson/bles1_3.htm

ой уже 3 получилось smile
и вот еще
пользуйся поиском на сайте
http://www.cbuilder.ru/

если не поможет пиши!!!

Добавлено @ 09:27
УДАЧИ!!!

Автор: babah 25.4.2006, 12:01
Для того чтобы корректно работать с файлами экселя в билдере, могу посоветовать следующее.
В Акцесе создаешь базу данных, в которую загоняешь таблицы, с которыми хочешь работать.
Далее размещаешь на форме компоненты ADOConnection, ADOQuery, DataSource и конечно же DBGrid.
Затем делаешь соответствующие привязки. Компонент DataSource параметр DataSet ставишь ADOQuery,
компонент ADOQuery параметр connection ставишь ADOconnection...
Затем в компоненте ADOСonnection жмешь на параметр connection string...появится диалог...
Там выбираешь Use connection string и нажимаешь кнопку build... появляется окно - называется "Свойства связи с данными" по умолчанию появляедся вкладка подключение.... если не она то жми ее... дальше выбираешь использовать строку подключения и жмешь "сборка"....
появляется окно... там строка "имя DSN" жмешь создать...появляется еще окно... выбираешь Driver do Microsoft Access(*.mdb), жмешь далее.... еще окно там "обзор" тип файла по умолчанию указан "Файлы-источники ODBC"... меняешь на "все файлы" и указываешь базу данных созданную в акцесе (Microsoft Access - бесплатное приложение к офису).... дальше интуетивно....ок, далее... что-то в этом роде...
Проделав это можешь спокойно работать с эксель файлами через sql запросы....
Если не знаешь sql , то учись....
Для того чтобы проверить работает или нет можешь написать скл команду.... она пишется соответственно в компоненте ADOQuery в параметре SQL ...
Пишешь select * from base - где base это имя твоей таблицы экселя без расширения xls...
Например если в акцесе твоя таблица называется main.xls , то команда будет выглядеть так - select * from main
после этого свойство ADOQuery active ставишь в true....и вот она таблица экселя в DBGRid.
Если тебе этот коментарий не поможет, то лучше бросай билдер.... честно....
Еще на всякий случай..... вот кусок кода для изменения скл команд из приложения.....
как они расшифровываются найдешь сам....
Код

Query1->Active = false;
Query1->SQL->Clear();
Query1->SQL->Add("select * from base");
Query1->ExecSQL();
Query1->Active = true;
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)