• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Excel через Odbc

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

gammaray

Собственно проблема такая. Надо с помощью команды 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

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

gammaray

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

gammaray

Плохое решение :) надо было прежде спросить тут :blink:
Пример из ссылки выше - нормально показывает суть.
Да и OLEDB это просто апи для работы с базами, и реализованы в неком провайдер, который вы пользуете.
Начал читать вот тут
Так оказалось просто читать Excel таблицы через ADO, что пожалуй я прогу всю заново перепишу... Спасибо большое!!!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!