Форум программистов, компьютерный форум, киберфорум
Visual C++: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
cplusiv

Создание файла Excel используя ODBC"

24.03.2009, 20:20. Показов 4924. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу запустить этот пример... http://www.cyberguru.ru/cpp-sources/db/sozdanie-fajla-excel-ispolzuya-odbc.html

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <AFXDB.H> 
 
// 
void main( int argc, char * argv[] ) 
//void MyDemo::Put2Excel()
{
  CDatabase database;
  CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";
  CString sExcelFile = "c:\\demo.xls";               
  CString sSql;
    
  TRY
  {
    
    sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
                sDriver, sExcelFile, sExcelFile);
 
      if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
    {
      sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)";
      database.ExecuteSQL(sSql);
 
      sSql = "INSERT INTO demo (Name,Age) VALUES ('Bruno Brutalinsky',45)";
      database.ExecuteSQL(sSql);
 
      sSql = "INSERT INTO demo (Name,Age) VALUES ('Fritz Pappenheimer',30)";
      database.ExecuteSQL(sSql);
 
      sSql = "INSERT INTO demo (Name,Age) VALUES ('Hella Wahnsinn',28)";
      database.ExecuteSQL(sSql);
    }      
 
    database.Close();
  }
  CATCH_ALL(e)
  {
    TRACE1("Driver not installed: %s",sDriver);
  }
  END_CATCH_ALL;
}
Добавлено через 3 минуты 23 секунды
Debuger выдает ошибку 0xC0000005: Access Violation
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.03.2009, 20:20
Ответы с готовыми решениями:

Excel через ODBC, Как выбрать через Select столбец из файла Excel по букве?
Собственно проблема такая. Надо с помощью команды Select получить данные из столбца файла Excel по букве этого столбца. Вообще суть в том,...

Чтение Excel файла без использования ODBC и пр.
Добрый день! Стоит задача чтение файла Excel, сам файлик должен конфигурировать устройство. Использовать ODBC, ADO или OLE DB, не...

Добавление внешних данных таблицы Excel а Visio VBA из файла Excel используя макросы
В файле Excel много таблиц, сформированных как именованные диапазоны. Из файла Visio добавление внешних данных этих таблиц вручную...

3
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
24.03.2009, 20:49
ну как минимум надо CDatabase открыть
0
cplusiv
24.03.2009, 22:34
она открыта

C++
1
 if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
Заблокирован
25.03.2009, 09:16
cplusiv,
держи функцию экспорта в EXCEL данных из Access из моей проги, убери всё что касается m_pView(это CRecordView для mdb - ного файла), а таблица создаётся как раз как ты хочешь, погляди...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
void CWriteMDBDlg::OnExport() 
{
    // TODO: Add your command handler code here
    CRect m_pRect;
    CFileDialog fDlg(false);
    if(m_pView)
    {
        CDialog::GetWindowRect(&m_pRect);
        int cx = m_pRect.right - m_pRect.left;
        int cy = m_pRect.bottom - m_pRect.top - 54;
 
        strcpy(fDlg.m_ofn.lpstrFile,m_pView->m_pSet->GetTableName());
 
        fDlg.m_ofn.lpstrTitle  = "Select database";
        fDlg.m_ofn.lpstrFilter = "(*.xls)\0*.xls\0";
        fDlg.m_ofn.lpstrDefExt = "xls";
        if(fDlg.DoModal() == IDOK)
        {
//          char chPath[MAX_PATH];
//          GetShortPathName(fDlg.m_ofn.lpstrFile,chPath,MAX_PATH);
            CString sDSN         = "DSN=New Excel Data Source;";
            CString sDescr       = "Description=New Excel Data Source;";
            CString sDrvID       = "DriverId=278;";
            CString sDefDir      = "DefaultDir=" + (CString)fDlg.m_ofn.lpstrFile + ";";
//          CString sDefDir      = "DefaultDir=" + (CString)chPath + ";";
            CString sMaxRows     = "MaxScanRows=256;";
            CString sAtrb = sDSN + sDescr + sDrvID + sDefDir + sMaxRows;
            m_stat1_1 = "ODBC config Error" ;
            if (
                SQLConfigDataSource
                (
                    NULL,
                    ODBC_ADD_DSN,   
                    "Microsoft Excel Driver (*.xls)",
                    sAtrb
                    )
               )
            {
                m_stat1_1 = m_pView->m_pSet->GetTableName();
                CString str = "CREATE TABLE " + m_stat1_1;
                str += "([Код] LONG, [Поле1] TEXT, ";
                str += "[Столбец1] DOUBLE, ";
                str += "[Столбец2] DOUBLE, ";
                str += "[Столбец3] DOUBLE, ";
                str += "[Столбец4] DOUBLE, ";
                str += "[Столбец5] DOUBLE, ";
                str += "[Столбец6] DOUBLE, [Столбец7] DOUBLE)";
                CDatabase *pdb = new CDatabase();
                try
                {
                    pdb->OpenEx(sDSN,CDatabase::noOdbcDialog );
                    pdb->ExecuteSQL(str);
                }
                catch(CDBException *pCDBThrow)
                {
                    AfxMessageBox(pCDBThrow->m_strError);
                    pCDBThrow->Delete();
                }
                str.Format("INSERT INTO %s (%s,%s,%s,%s,%s,%s,%s,%s,%s)",
                    m_stat1_1,
                    "[Код]",
                    "[Поле1]",
                    "[Столбец1]",
                    "[Столбец2]",
                    "[Столбец3]",
                    "[Столбец4]",
                    "[Столбец5]",
                    "[Столбец6]",
                    "[Столбец7]");
                m_stat1_1 = str;
                
                m_pView->m_pSet->MoveFirst();
                while(!m_pView->m_pSet->IsEOF())
                {
str.Format("%s VALUES(\'%d\',\'%s\',\'%.f\',\'%.f\',\'%.f\',\'%.f\',\'%.f\',\'%.f\',\'%.f\');",
                    m_stat1_1,
                    m_pView->m_pSet->m_column1,
                    m_pView->m_pSet->m_____1,
                    m_pView->m_pSet->m________1,
                    m_pView->m_pSet->m________2,
                    m_pView->m_pSet->m________3,
                    m_pView->m_pSet->m________4,
                    m_pView->m_pSet->m________5,
                    m_pView->m_pSet->m________6,
                    m_pView->m_pSet->m________7);
                    m_pView->m_pSet->MoveNext();
                    try
                    {
                        pdb->ExecuteSQL(str);
                    }
                    catch(CDBException *pCDBThrow)
                    {
                        AfxMessageBox(pCDBThrow->m_strError);
                        pCDBThrow->Delete();
                    }
                }
                m_stat1_1 = (CString)"SQLConfigSource(\r\n" + 
                            "\tNULL,        \r\n"   + 
                            "\tODBC_ADD_DSN,\r\n"   +
                            "\t\"Microsoft Excel Driver (*.xls)\",\r\n" + 
                            "\t" + sAtrb + "\r\n) : OK\r\n";
                m_stat1_1 += "pdb->OpenEx(sDSN,CDatabase::noOdbcDialog) :\r\n";
                m_stat1_1 +=  pdb->GetConnect();
                pdb->Close();
                m_list1.ShowWindow(SW_HIDE);
                m_stat1.MoveWindow(0,0,cx,cy,true);
            }
        }
    }
    UpdateData(false);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2009, 09:16
Помогаю со студенческими работами здесь

Создание бланка заявки в Excel на основании данных из другого файла Excel
Всем доброго времени суток! Есть у меня такая задумка в Excel, может быть кто-нибудь сталкивался с подобной необходимостью и добился...

Большая работа с Excel (передача в него данных, построение графиков, дозапись, создание нового файла Excel)
Всем участниками большой привет. Снова нужна помощь. Что имеем: -Имеем форму во вложении. на ней есть 30 нужных нам текстбоксов,...

Создание файла с массивом и чтение этого файла обратно используя ShareActionProvider
Есть созданный массив, после нажатия на кнопку он должен вносится в файл, а потом передать этот файл используя ShareActionProvider. После...

Создание квитанции на основе таблицы Excel , используя ВПР
Здравствуйте! Помогите пожалуйста! Необходимо создать квитанцию-счет для оплаты товаров, приобретенных одним из покупателей, с учетом...

Создание каталога в html, используя данные из файлов excel
Здравствуйте, всем доброго времени суток Прошу помощи решить задачу В чем суть: есть некоторое количество файлов excel, в которых в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru