Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите! Работа с БД Excel через MFC, Ошибка при записи в БД Excel через MFC 
:(
    Опции темы
Guest_Sergey
  Дата 27.5.2003, 16:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В Visual C++ 6.0 скомпилировал пример (из книги) простого MFC-приложения,
в котором осуществляется работа с базой данных MS Access через ODBC.
База данных представляет собой простейшую таблицу типа телефонной книжки и
физически расположена на том же компьютере, что и приложение. Как и написано
в книге, я проделал следующее:
1. После создания база данных была успешно зарегистрирована в системе
посредством "ODBC Data Sources" в Панели управления.
2. Для создания приложения был вызван "MFC Application Wizard".
3. На "Шаге 1" было выбрано: "Single Document".
4. На "Шаге 2" было выбрано: "Database view without file support", а в качестве
источника данных - ODBC: "Имя моей БД" (Recordset type = Snapshot).
Далее я оставил все опции проекта по умолчанию, добавил на форму нужные мне
Edit-контролы (поля в моей БД - текстовые) и связал их с соответствующими
переменными в классе CAppView (автоматически сгенеренным VC).
Как и положено для примера, приложение сразу заработало. Все записи считывались
из БД и отображались в окне моего приложения. Изменения, сделанные в окне моего
приложения также корректно переносились в исходную БД.

Теперь, собственно, к сути проблемы smile.gif У меня есть задача, аналогичная
рассмотренному выше примеру, с той лишь разницей, что в качестве БД
используется не MS Access, а книга MS Excel. Я соответствующим образом
зарегистрировал xls-файл в системе, используя Microsoft Excel Driver (ODBC).
Для правильной работы нужным мне Excel-ячейкам я задал имя (аналог имени
таблицы в MS Access), без чего в "MFC Application Wizard'е" я бы не смог
выбрать источник данных.
Далее заново создал MFC-приложение, где в качестве источника данных выбрал
новую Excel-БД. Так вот, считывание данных из БД (файла Excel) и их отображение
происходит нормально. Если же в окне моего приложения изменить любое из полей,
то при переходе к следующей записи (измененные данные при этом должны
автоматически сохраниться в БД) появляется сообщение об ошибке "Ошибка
синтаксиса или нарушение прав доступа", и изменения, естественно, не
сохраняются.
Замена опций "Database view WITHOUT file support" на "Database view WITH file
support", или "Snapshot" на "Dynaset", при создании проекта не помогла.
При регистрации Excel-БД в системе я убедился, что галочка "Read Only" снята.
Принудительно задавал "текстовый" формат Excel-ячеек - тоже не помогло.
В то же время, использование непосредственно SQL-команды для модификации
данных в поле Excel-таблицы (m_pSet->m_pDatabase->ExecuteSQL("UPDATE Table1
SET Field1 = 10 WHERE N = 1") сработало без всяких ошибок.
В чем здесь может быть проблема, почему считывание данных из Excel-БД
присходит нормально, а запись (посредством автоматически сгенеренного
MFC-кода) - нет.
ОС: Windows XP
MS Office 2000

Заранее спасибо :-)

  Вверх
valex13
Дата 9.6.2003, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: нет
Всего: 1



Попробуй открыть xls и указать в настройках монопольных доступ.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.