![]() |
|
![]() ![]() ![]() |
|
Дмитрий Т |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 16.3.2005 Где: Самара Репутация: нет Всего: 4 |
Программирую в основном на Borland C++ Builder, а невизуальные проекты на Visual C++,
но хочется осесть на чём-то одном. Большая часть программ у меня связана с базами данных и отсюда вопрос: "Как работают с базами данных в Visual C++?". Пролистав книги на эту тему удивился как мало этому уделено внимания. Для Borland C++ Builder и Delphi есть даже отдельные труды, а тут по два слова и нигде не встретил примеров построения сложного GUI для работы с информацией из баз данных... У Borland C++ Builder есть куча визуальных компонентов которые заточены на работу с БД. Visual C++ такого не наблюдаю... Может не знаю где смотреть? С ODBC, OLE DB, ADO в общих чертах разобрался, но нет понимания цельной системы, т.е. непонимаю как автоматизировать показ информации из БД и занесение в БД? В Borland например достаточно взять нужный компонет нижнего уровня (например позволяющий работать с MySQL), потом связать с промежуточным (DataSource) и последний шаг - указать этот DataSource в специализированных визуальных компонентах. При этом существуют такие визуальные компоненты, как навигатор (набор кнопок для перемещения по выбранным данным), визуальные построители SQL запросов, чтоб пользователь мог делать любую выборку, сетки в которых можно задавать щелчком по заголовку столбца сортировку по этому полю (SQL меняется автоматически). А как сделать полноценную программу, ориентированную на БД, с помощью Visual C++? |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
См. классы CDatabase\CDaoDatabase и CRecordset\CDaoRecordset
-------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Дмитрий Т |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 16.3.2005 Где: Самара Репутация: нет Всего: 4 |
Это я видел, а как показывать? Я кроме CRecordView ничего не нашёл, а как редактировать записи? Как сделать выпадающие списки содержащие данные из связанных таблиц? Как сделать сетку (таблицу) и др. полезные элементы? |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Дмитрий Т, я все делал руками
![]() -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Дмитрий Т |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 16.3.2005 Где: Самара Репутация: нет Всего: 4 |
Это означает дополнительные траты времени, а для меня сейчас это слишком дорогое удовольствие... Может есть коммерческие компоненты восполняющие этот пробел? |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Думаю, что есть даже некоммерческие. Стоит искать на codeguru.com и codeproject.com -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Дмитрий Т |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 16.3.2005 Где: Самара Репутация: нет Всего: 4 |
Да, там полно классов для баз данных... А кто-нибудь может порекомендовать что-то лично опробованное? |
|||
|
||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Я тут пас. -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
КУБ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 5.6.2006 Где: Украина, Донецк Репутация: нет Всего: нет |
Зайди сюда http://worldcpp.vingrad.ru/
Потом зайди в раздел "Базы данных" Потом в "Как сделать базу данных?Очень просто!" И увидиш простой пример на Visual C++. Дерзай ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Неа. Чел не хочет научится работать с БД VC++. Ему нужен халявный полнофункциональный грид (единственое ,чем могут похваться Билдер и Делфятина ![]() Но такого, братан,нет. ![]() ![]() Со мной рядом делфятник сидит. Да ,с БД он работает быстро. Кинул грид на форму-и все. Только мышкой щелкает, да пару функций прописывает. Зависть берет...Пока проблемы не начнутся, или расширить функциональность надо. Вот тут он и тухнет. И мышка не спасает ... Тут уж не пощелкаешь. ![]() ![]() Это сообщение отредактировал(а) Coocky - 27.6.2006, 14:09 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Dart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 26.6.2006 Где: Саратов, РФ Репутация: 2 Всего: 2 |
Посмотри здесь. Это если хочешь OLE DB
--------------------
ЦитатаЛюблю смотреть, как другие работают Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] |
|||
|
||||
Дмитрий Т |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 16.3.2005 Где: Самара Репутация: нет Всего: 4 |
Благодарю КУБ и Dart за ссылки - посмотрел, буду пробовать, чтоб понять в чём смысл такой бедности компонентов в этой области.
Неужели основная масса программ для баз данных пишется на Delphi ![]()
А жаль, я бы купил набор человеческих компонентов для MySQL. Сейчас смотрю crlab.com, но грид у них похоже только для бюилдера, собираюсь попробовать их демки.
Неуч он у тебя ![]() |
||||
|
|||||
Дмитрий Т |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 16.3.2005 Где: Самара Репутация: нет Всего: 4 |
Нашёл гриды. Вот пара понравившихся: платный: http://www.theultimatetoolbox.com/ бесплатный: http://www.codeproject.com/miscctrl/datagrid.asp но есть и другие. |
|||
|
||||
Dart |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 26.6.2006 Где: Саратов, РФ Репутация: 2 Всего: 2 |
![]() ![]()
Так он поэтому и бесплатный ![]()
Кроме сетки там ничего нет, так что нету счастья ![]() Если хочешь, давай мыло, есть у меня кое-какие наработки, на следующей неделе вышлю (бесплатно), вот только работу одну доделаю. --------------------
ЦитатаЛюблю смотреть, как другие работают Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] |
||||||
|
|||||||
DeadSoul |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Я тебя разочарую. Нрида подходящего тебе никогда не существует. СОВСЕМ некогда. А 500 баксов при серьезной разработке - это не еньги(2 недели работы опытного программиста) -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: 3 Всего: 5 |
Так а в чом проблема я не понимаю?
Есть AdoDc кидаете его на свое окошко там можно строку подключения собрать как на лету так и перед запуском приложения. Если нужен грид то у меня есть бесплатный( тоесть есть бесплатная и платные версии, я всегда бесплатной пользовался так что скока стоит не скажу), он ActiveX. Если нуна можу подкинуть там ограничение на 1000 строк вроде... Я сам с Дельфятинки переходил. Вначале было много неясностей но теперь мне дажу удобней и понятней все стало. Переход занял не много.
Ну дык в чем проблема то? А за сколько вы хотели хорошую гридину за 10 баксов что-ли? Это сообщение отредактировал(а) Nuzur - 30.6.2006, 12:40 -------------------- Never again... |
|||
|
||||
takedo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Вопрос то был в том, чтобы дать человеку определиться, на чем ему остановиться. Вообще я думаю, что лучше уж на Buildere пусть сидит человек, так как если чего посложнее надо делать это и на билдере можно сбацать, только сложновато все и неявно. Я тоже на билдере начинал, если надо было что быстро сбацать- красота, а как посложнее, так это как Coocky рассказывал... Правда я тогда имел вообще очень смутные представления программирования под виндовс
![]() ![]() -------------------- я не гольфист - я хоккеист |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 2 Всего: 20 |
Предлагаю оболочку написать самому
|
|||
|
||||
MURYONOK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 16.4.2007 Где: Ижевск Репутация: нет Всего: нет |
возник следующий вопрос, связанный с бд в визуале: известна только первая таблица из базы, её успешно получается связать с компонентами, но вот остальные таблицы свзять не удаётся. может кто что подсказать?
|
|||
|
||||
olicheg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
с Mysql очень просто.
ставишь dbForge Studio for MySQL. абсолютно бесплатный. а запросы пишется еще проще #include "stdafx.h" #include <windows.h> #include <winbase.h> #include <winsock.h> #include <my_global.h> #include <mysql.h> #include <errmsg.h> #include <mysqld_error.h> #pragma comment(lib, "libmysql.lib") //using namespace System; void puterror(char * str); int main(array<System::String ^> ^args) { // Дескриптор соединения MYSQL conn; // Дескриптор результирующей таблицы MYSQL_RES *res; // Дескриптор строки MYSQL_ROW row; // Получаем дескриптор соединения if(!mysql_init(&conn)) // puterror("Error: can't create MySQL-descriptor\n"); printf("%sn", "123"); // Устанавливаем соединение с базой данных if(!mysql_real_connect(&conn, "localhost", "root", "admin", "mysql", 0, NULL, 0)) puterror("Error: can't connect to MySQL server\n"); // Устанавливаем кодировку соединения, чтобы предотвратить // искажения русского текста if(mysql_query(&conn, "SET NAMES 'cp1251'") != 0) puterror("Error: can't set character set\n"); // Выполняем SQL-запрос if(mysql_query(&conn, "SELECT * FROM books.author") != 0) puterror("Error: can't execute SQL-query\n"); // Получаем дескриптор результирующей таблицы res = mysql_store_result(&conn); if(res == NULL) puterror("Error: can't get the result description\n"); // Если имеется хотя бы одна запись - выводим // список каталогов if(mysql_num_rows(res) > 0) { // В цикле перебираем все записи // результирующей таблицы while((row = mysql_fetch_row(res)) != NULL) { // Выводим результат в стандартный поток fprintf(stdout, "%s\n", row[1]); } } // Освобождаем память, занятую результирующей таблицей mysql_free_result(res); // Закрываем соединение с сервером базы данных mysql_close(&conn); // Console::WriteLine(L"Hello World"); return 1; } void puterror(char * str) { fprintf(stderr, str); exit(1); } ///////////////////////////////////*.h файлы находятся там где установлена твоя mySql(прописать путь в tools->options) my_global.h> mysql.h> errmsg.h> mysqld_error.h> |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |