Excel через Odbc

  • Автор темы gammaray
  • Дата начала
G

gammaray

#1
Собственно проблема такая. Надо с помощью команды Select получить данные из столбца файла Excel по букве этого столбца. Вообще суть в том, что пишу программу для составления прайса из нескольких прайсов. Нашел вот здесь аналогичную программу! Аналог
И вот какие нашел в ней особенности: когда открываешь прайс, то запускается соответствующий файл Excel, далее задаешь просто буквы столбцов и программа сама делает прайс. Причем выбирается информация по стобцам с того листа, который открыт в непосредственно в Excel. Т.е. программа как-то работает и с файлом Excel. Я же файл Excel открываю с помощью ShellExecute, а имя нужного листа приходится вводить в Edit в самой программе. Yу и + никак не могу найти, как выборку делать по буквам столбцов.
Может кто подскажет, как это делать?

Пишу через ODBC. Вот код, который открывает полностью весь лист Excel:
Код:
try
{
CDatabase db;

if(db.Open(NULL)
{
CRecordset cr(&db);
try
{
SQL_Select.Format(_T("SELECT * FROM [%s$]"), this->m_PriceListName);
cr.Open(CRecordset::forwardOnly, SQL_Select);
.................... 
....................
cr.Close();
}
catch(CDBException cdb)
{
AfxMessageBox(cdb.m_strStateNativeOrigin);
}
}
else AfxMessageBox(_T("Not Open"));
db.Close();
}
catch(CDBException* pe)
{
AfxMessageBox(pe->m_strError);
pe->Delete();
}

Еще дополнительно возник вопрос, каким образом получить список таблиц, которые созданы в Excel файле?
 
G

gammaray

#2
Неужели никто не в курсе? Сечас уже даже важнее вопрос про то, как получить таблицы, которые уже созданы в Excel файле... Первый вопрос я обошел другим путем. Просто пользователю надо принудительно подписывать каждый столбец и вводить его имя в программу...
 
G

gammaray

#4
О это долгая и нудная тема, неохота про нее ... я имел ввиду почему не адо (оледб)
Ну просто я первый раз пишу прогу, работающую с БД... И решил начать с ODBC, потому что сразу писать на OLEDB не решился... А есть хорошая ссылка почитать про OLEDB? Чтобы все было более менее попроще расписано с примерами.
 
G

gammaray

#5
Плохое решение :) надо было прежде спросить тут :blink:
Пример из ссылки выше - нормально показывает суть.
Да и OLEDB это просто апи для работы с базами, и реализованы в неком провайдер, который вы пользуете.
Начал читать вот тут
http://www.gotdotnet.ru/LearnDotNet/ADONET/714.aspx Так оказалось просто читать Excel таблицы через ADO, что пожалуй я прогу всю заново перепишу... Спасибо большое!!!