Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++\CLR (VS 2008) & Access, Проблемы при подключении БД 
V
    Опции темы
Gluttton
Дата 30.8.2008, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Доброго времени суток!

Я пытаюсь в Visual Studio 2008 -> C++ -> CLR -> Windows Form Application подключиться к БД: добавляю на форму DataGrid, BindingSource, но когда пытаюсь установить источник данных для BindingSource в DataSource и жму Add Project Data Source в появляющемся окне отображается только лишь пиктограмма Object, при этом нет в принципе возможности выбрать в качестве источника существующую БД.:( Причем если создавать проект на С#, то в результате аналогичных действий я получаю указаным способом доступ к БД и без строки кода получаю рабочее приложение. Более того, БД "видна" для C++ -> MFC -> Windows Application проиложений... Крайне удручает тот факт, что в книге А.Хортона Visual C++ 2005 описываются выполняемые мною действия, но там они приводят к ожидаемому результату.:( 
Буду признателен за любую помощь или совет!

Для тех кто поленился прочитать вышеизложеное сформулирую вопрос короче: как Visual Studio 2008 -> C++ -> CLR -> Windows Form Application подключиться к cyществующей БД Access?

С уважением, Gluttton!



--------------------
Слава Україні!
PM MAIL   Вверх
nubliK
Дата 11.9.2008, 08:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


вселенские матрицы



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 11.9.2008
Где: Владивосток

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



Странно! У меня все получилось. Создал проект, перетащил компонент (DataGridView) на форму, в поле Choose Data Source выбрал базу и подсоединил без проблем - компильнул - показывает все =) Может ты там чет не заметил по дороге к успеху?  smile 
BindingSource даже нафиг не нужен. Или может я не там искал и не то делал что ты хочешь получить в конечном итоге?
PM MAIL ICQ   Вверх
Gluttton
Дата 11.9.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Ну вот наконец то мне ответили smile . 
Во-первых спасибо, за уделенное внимание!
Во-вторых, на сегодняшний проблема решена переходом на VS2005! Там всё происходит именно так как мне хочеться smile .

А теперь по сути. В двух словах о том, что я хочу сделать вообще.
Есть предприятие у которого 5-7 поставщиков до 10 контрактов в год с каждым в каждом договоре 1-3 позиции по 1-10 штук.
Необходимо автоматизировать учет (сколько продукции получено, сколько оплачено и т.д.). Кроме того есть пожелание пользоватей, что бы информация выводилась в Excel в определенном виде.
Изначально задача была решена в Access, т.е. была создана БД, для оперативного доступа к данным были созданы формы и в конце концов отчет в Excel.
Но затем начались "довороты", попросили добавить автозаполнение, изменить формать вывода и много другой мелких ньюансов, для решения которых необходимо программировать. А я в VBA ноль.
Так и родилась идея создать на C++ программу, которая бы управляла доступом к уже существующей БД в Access и выводила бы данные в Excel (последнее реализовывать еще не пробывал, но на форумах море информации на эту тему надеюсь получиться).

Перейду ближе к теме. Всё сводиться к тому, что когда Data Source Configuration Wizard предлагает Choose a Data Source Type, то ниже в том же окошке отсутствует Database, а есть только Object :( Пробовал на двух машинах... Причем, как я уже писал выше, в других типах проекта подобное поведение не наблюдается, кроме того, на сегодняшний день, я могу так же утверждать, что это поведение не наблюдается и в данном типе проекта (CLR -> WindosForm), но при переходе с версии 2008 на 2005. 

Ну а у Вас такой проблемы нет... Странно... (В смысле странно, что она у меня есть)... Возможно причина в том, что у меня "лицензионная версия"? Можете меня убить smile если пришлете мне скриншот мастера подключения к источникам данных, который Вам будет разрешать выбрать источник не только из объектов, но и из БД smile .

Резюмирую: судя по всему проблема носит случайный характер и связана с индивидуальными особенностями конкретной копии VS. Ничего другого в голову не приходит.

Ещё раз спасибо, буду признателен за любые советы по этому (и не только) поводу.

P.S. Боюсь ошибиться, но по моему, даже если Вы подлючаетесь к БД из DataGrid, то VS создаст Вам BindingSource автоматически.


--------------------
Слава Україні!
PM MAIL   Вверх
nubliK
Дата 16.9.2008, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


вселенские матрицы



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 11.9.2008
Где: Владивосток

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



Прикрути через связку OdbcDataAdapter и OdbcDataCommand =) вроде можно тогда будет для базы пользовать SQL - но я не проверял достоверно. Я дилетант в этом деле. Сам ломаю грабли - не могу простейший поиск по столбцам написать.  smile 
PM MAIL ICQ   Вверх
Gluttton
Дата 16.9.2008, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Как добавить OdbcDataAdapter и OdbcDataCommand?
На ToolBox -> Data я их не нахожу. Подскажи пожалуйста!
(Извини, может глупость сморозил smile )


--------------------
Слава Україні!
PM MAIL   Вверх
nubliK
Дата 16.9.2008, 13:04 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


вселенские матрицы



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 11.9.2008
Где: Владивосток

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



Тыцкаешь правой кнопкой по свободному полю в Toolbox выбираешь Choose items... и выбираешь эти компоненты.
Если не монтируется база -- скорее всего у тебя какая то из служб виндоус отключена - какая не знаю.
Visual studio 2008 удалил ты зря - лучше верни и установи SP для нее. (хотя пользуйся чем удобно).

иииии - я понимаю что это прозвучит гавено, я и сам такие ответы просто ненавижу - начинай уже читать MSDN и книги.
PM MAIL ICQ   Вверх
Gluttton
Дата 16.9.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Спасибо!
(Раньше писал в Builder, поэтому в IDE VS слаб, так что правый чудо-клик на Toolsbox для меня открытие smile ).
Буду бороться дальше!



--------------------
Слава Україні!
PM MAIL   Вверх
nubliK
Дата 17.9.2008, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


вселенские матрицы



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 11.9.2008
Где: Владивосток

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



знания дело наживное  smile  удачи!
PM MAIL ICQ   Вверх
SeriousMaksi
Дата 9.11.2008, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 9.11.2008

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



В VC++ 2008 с БД у меня вообще ничего не вяжется. Буд-то средой нет поддержки баз данных вообще... Причём в прилагаемом MSDN всё так просто... Но нет в Ado контролах даже автобилда для connectionstring.

Не решённая проблема автора темы является и моей проблемой.

PS Можно правда приконнектится из меню Tools->Connect to dataBase, но для конечного приложения это ничего не даёт...

Неужели искать VC++ 2005?!

 smile 

Это сообщение отредактировал(а) SeriousMaksi - 9.11.2008, 00:32
PM MAIL   Вверх
SeriousMaksi
Дата 12.11.2008, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 9.11.2008

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



Всё. Наконец, разобрался.
Метод называется "Подключение баз данных в MS Visual C++ 2008 через ж*пу".
Исхожу из логики одного и того же движка для VisualC#, VisualC++, но отсутствии в последней среде возможности создания объекта "database".

1. Создать и сохранить рядышком два пустых проекта VC++ и VC# бесплатной Visual studio 2008.

2. В VC# из меню "data"=> Add new datasourse => database.

3. Настроить мастером этот datasourse1 на свой файл базы данных и сохранить проект VC#.
PS Теперь можно деинсталировать VC#

4. В среде VC++ на вкладке "solution explorer" правой кнопкой мыши выбрать "Add existing Item…", указав в следующем диалоговом окне ссылку на xsd-файл datasourse, лежащий в папке проекта VC#.

5. В среде VC++ на вкладке "datasourses" появится соответствующий элемент и, выбрав "Edit dataset with designer" в PopUp меню, добавить на появившуюся форму компонент "TableAdapter" (из Toolbox'а). Через мастер этого компонента можно выбрать файл базы данных и написать простой SQL-запрос с помощью мастера SQL-запроса.

6. Перейти в режим дизайна формы. На форму добавить компонет DataGridView, указав ему только что инициализированный datasourse1.
PS  BindingSourse сгенерируется сам.

7. Инициализировать данные компонента DataGridView в свойстве "dataMember",-- в скрутке "(DataBindings)".

 smile 

PS Даже в sp1 для VC++ 2008 нельзя добавить database => datasource объект в библиотеку классов.

Это сообщение отредактировал(а) SeriousMaksi - 12.11.2008, 02:12
PM MAIL   Вверх
ulicenok
Дата 14.2.2010, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.2.2010

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



С шарпом чего-то не срослось, а вот если у кого есть и 2005 и 2008 студия можно решить проблему через другую *опу (хотя опять же через нее благодаря заботливому мелкософту  smile ). В 2005 студии создаем приложение и к нему лепим БД, затем из папки с решением копируем в папку с решением для 2008 студии файлы *.xsd, *.xsc и *.xss и при помощи волшебного правого клика и пунктика Добавить-->Существующий элемент впихиваем в свой проект файл *.xsd. Все, магическим образом появляется набор данных, НО! Изменить его мастером низзя - или ручками или в 2005-й, а потом переподключаем...  smile 
PM MAIL   Вверх
Madonna
Дата 14.2.2010, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Forbidden love...
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 22.1.2009
Где: Москва

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



Цитата(ulicenok @  13.2.2010,  22:22 Найти цитируемый пост)
С шарпом чего-то не срослось, а вот если у кого есть и 2005 и 2008 студия можно решить проблему через другую *опу (хотя опять же через нее благодаря заботливому мелкософту   ). В 2005 студии создаем приложение и к нему лепим БД, затем из папки с решением копируем в папку с решением для 2008 студии файлы *.xsd, *.xsc и *.xss и при помощи волшебного правого клика и пунктика Добавить-->Существующий элемент впихиваем в свой проект файл *.xsd. Все, магическим образом появляется набор данных, НО! Изменить его мастером низзя - или ручками или в 2005-й, а потом переподключаем...    


Вышла уже адекватная vs2010 RC) Работает быстро. Можно её использовать.
Это к тому, что 2005 мало у кого стоит.
Так что первый способ рулит, тем более всем давно известная трабла. smile

Добавлено через 11 минут и 44 секунды
Установить шарп проще и быстрее, чем студию 2005.
--------------------
Best regards, Madonna
PM   Вверх
Shephard
Дата 15.6.2010, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.6.2010

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



Поздновато конечно, но... кроме такого решения через одно место есть ещё один вариант: создавать в C# проект DLL, в него запихивать подключение к DataSource и уже DLL линковать в проект на C++. Судя по ответу представителя Microsoft эта фича выпилена из 2008 студии окончательно и вряд ли есть в 2010, хотя проверить стоит.

Цитата
Visual Studio 2008 does not support adding new data sources (database or webservice) to Visual C++ projects anymore. Due to VC's changes in focus and strategy in Orcas and going forward and our resources availability to maintain Data Designer integration, we decided to reduce our support for this feature.

Projects created with Visual C++ 2005 that contain data sources will continue to work as expected as there are no breaking changes in the editor or the build system.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


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

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


 




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


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

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