![]() |
|
|
![]()
|
|
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 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! -------------------- Слава Україні! |
|||
|
||||
| nubliK |
|
|||
![]() вселенские матрицы Профиль Группа: Участник Сообщений: 36 Регистрация: 11.9.2008 Где: Владивосток Репутация: нет Всего: нет |
Странно! У меня все получилось. Создал проект, перетащил компонент (DataGridView) на форму, в поле Choose Data Source выбрал базу и подсоединил без проблем - компильнул - показывает все =) Может ты там чет не заметил по дороге к успеху?
BindingSource даже нафиг не нужен. Или может я не там искал и не то делал что ты хочешь получить в конечном итоге? |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Ну вот наконец то мне ответили
Во-первых спасибо, за уделенное внимание! Во-вторых, на сегодняшний проблема решена переходом на VS2005! Там всё происходит именно так как мне хочеться А теперь по сути. В двух словах о том, что я хочу сделать вообще. Есть предприятие у которого 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. Ну а у Вас такой проблемы нет... Странно... (В смысле странно, что она у меня есть)... Возможно причина в том, что у меня "лицензионная версия"? Можете меня убить Резюмирую: судя по всему проблема носит случайный характер и связана с индивидуальными особенностями конкретной копии VS. Ничего другого в голову не приходит. Ещё раз спасибо, буду признателен за любые советы по этому (и не только) поводу. P.S. Боюсь ошибиться, но по моему, даже если Вы подлючаетесь к БД из DataGrid, то VS создаст Вам BindingSource автоматически. -------------------- Слава Україні! |
|||
|
||||
| nubliK |
|
|||
![]() вселенские матрицы Профиль Группа: Участник Сообщений: 36 Регистрация: 11.9.2008 Где: Владивосток Репутация: нет Всего: нет |
Прикрути через связку OdbcDataAdapter и OdbcDataCommand =) вроде можно тогда будет для базы пользовать SQL - но я не проверял достоверно. Я дилетант в этом деле. Сам ломаю грабли - не могу простейший поиск по столбцам написать.
|
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Как добавить OdbcDataAdapter и OdbcDataCommand?
На ToolBox -> Data я их не нахожу. Подскажи пожалуйста! (Извини, может глупость сморозил -------------------- Слава Україні! |
|||
|
||||
| nubliK |
|
|||
![]() вселенские матрицы Профиль Группа: Участник Сообщений: 36 Регистрация: 11.9.2008 Где: Владивосток Репутация: нет Всего: нет |
Тыцкаешь правой кнопкой по свободному полю в Toolbox выбираешь Choose items... и выбираешь эти компоненты.
Если не монтируется база -- скорее всего у тебя какая то из служб виндоус отключена - какая не знаю. Visual studio 2008 удалил ты зря - лучше верни и установи SP для нее. (хотя пользуйся чем удобно). иииии - я понимаю что это прозвучит гавено, я и сам такие ответы просто ненавижу - начинай уже читать MSDN и книги. |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Спасибо!
(Раньше писал в Builder, поэтому в IDE VS слаб, так что правый чудо-клик на Toolsbox для меня открытие Буду бороться дальше! -------------------- Слава Україні! |
|||
|
||||
| nubliK |
|
|||
![]() вселенские матрицы Профиль Группа: Участник Сообщений: 36 Регистрация: 11.9.2008 Где: Владивосток Репутация: нет Всего: нет |
знания дело наживное
|
|||
|
||||
| SeriousMaksi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 9.11.2008 Репутация: нет Всего: нет |
В VC++ 2008 с БД у меня вообще ничего не вяжется. Буд-то средой нет поддержки баз данных вообще... Причём в прилагаемом MSDN всё так просто... Но нет в Ado контролах даже автобилда для connectionstring.
Не решённая проблема автора темы является и моей проблемой. PS Можно правда приконнектится из меню Tools->Connect to dataBase, но для конечного приложения это ничего не даёт... Неужели искать VC++ 2005?! Это сообщение отредактировал(а) SeriousMaksi - 9.11.2008, 00:32 |
|||
|
||||
| SeriousMaksi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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)". PS Даже в sp1 для VC++ 2008 нельзя добавить database => datasource объект в библиотеку классов. Это сообщение отредактировал(а) SeriousMaksi - 12.11.2008, 02:12 |
|||
|
||||
| ulicenok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 14.2.2010 Репутация: нет Всего: нет |
С шарпом чего-то не срослось, а вот если у кого есть и 2005 и 2008 студия можно решить проблему через другую *опу (хотя опять же через нее благодаря заботливому мелкософту
|
|||
|
||||
| Madonna |
|
|||
![]() Forbidden love... ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 22.1.2009 Где: Москва Репутация: нет Всего: 4 |
Вышла уже адекватная vs2010 RC) Работает быстро. Можно её использовать. Это к тому, что 2005 мало у кого стоит. Так что первый способ рулит, тем более всем давно известная трабла. Добавлено через 11 минут и 44 секунды Установить шарп проще и быстрее, чем студию 2005. --------------------
Best regards, Madonna |
|||
|
||||
| Shephard |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 15.6.2010 Репутация: нет Всего: нет |
Поздновато конечно, но... кроме такого решения через одно место есть ещё один вариант: создавать в C# проект DLL, в него запихивать подключение к DataSource и уже DLL линковать в проект на C++. Судя по ответу представителя Microsoft эта фича выпилена из 2008 студии окончательно и вряд ли есть в 2010, хотя проверить стоит.
|
|||
|
||||
![]()
|
| Правила форума "C++: Базы данных" | |
|
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |