Базы данных!
Наверняка каждый программист сталкивается с такой проблемой как базы данных. Вот пришла и моя очередь. Я уверен, что эта проблема волнует очень многих программистов и хочу, чтобы люди, которые имеют достаточный опыт по работе с базами данных рассказали, как лучше всего организовать связь приложения с базой данных (меня интересует ms access и не только, а еще лучше дайте совет, какую БД лучше использовать в конкретной ситуации). Я ХОЧУ ЗНАТЬ ВСЕ! Т.е. начиная от соединения приложения с БД и заканчивая элементами управления, в которые осуществляется вывод информации из базы. Существует огромное количество сайтов посвященных этой теме, но там нет того, что мне так необходимо – совет профессионала (возможно я плохо искал). Заранее всем ОГРОМНОЕ спасибо.
Мой совет, интерфейсы к бд лучше писать на билдере или вообще VB - это позволяет не мучиться с интерфейсом и сосредоточится только на работе с бд. при работе с бд главное выбрать с какой моделью данных будешь работать (DAO, ADO). потом можешь создать универсальное приложение - в котором вся работа с бд будет осуществляться через соответствующие драйвера, вначале только будешь выбирать драйвер для конкретной бд, а код менять не надо.
Мой совет, интерфейсы к бд лучше писать на билдере или вообще VB - это позволяет не мучиться с интерфейсом и сосредоточится только на работе с бд.
Для новичка лучше VB и Builder.
На VC ковырялся пару раз с этими БД. Не то чтобы сложно, просто много действий однотипных (а в басике это уже проделано до нас). Зато как потом работает! :D
Ну, в Visual C++ достаточно удобно работать с БД через механизмы ADO (здесь директива #import помогает) или OleDB (есть набор шаблонов, облегчающих работу). Но вот с созданием интерфейса проблема - попробуй, например, нормальный GRID найти.
Поясни пожалуйсто, как через ADO, или дай хорошую ссылку, а то я совсем запутался. Я бы с ОГРОМНОЙ радостью попользовался бы билдером или VB, но на Visual C++ надо, вот я и мучаюсь. Когда со всем розберусь то напишу свой класс и выложу его на форуме (хочу раз и на всегда покончить с проблеммами в Visual C++ с базами данных).
Поясни пожалуйсто, как через ADO, или дай хорошую ссылку, а то я совсем запутался. Я бы с ОГРОМНОЙ радостью попользовался бы билдером или VB, но на Visual C++ надо, вот я и мучаюсь. Когда со всем розберусь то напишу свой класс и выложу его на форуме (хочу раз и на всегда покончить с проблеммами в Visual C++ с базами данных).
Все классы давно уже написаны в MFC
Все классы давно уже написаны в MFC
Да точно, в MFC, я знаю и повседневно пользуюсь, это так, я не отрицаю. Но понимаешь в чем дело, в том, что мне необходимо это для НЕ MFC. Занешь, я очень рад, что ты мне отвечаешь чаще других и я очень тебе признателен, но я бы хотел бы разобраться в концепции баз данных, узнать как они заботают. Эта идея пришла мне в голову после недели мучений и постоянной головной боли. Как разместить поля выборки? Как лучше подключиться к ДБ, через DBQ или как то по другому? И т.д. Я считаю, что необходимо во всем разобраться и дать подробные объяснения другим, если мне может кто нибуть помочь... помогите!
Да точно, в MFC, я знаю и повседневно пользуюсь, это так, я не отрицаю. Но понимаешь в чем дело, в том, что мне необходимо это для НЕ MFC. Занешь, я очень рад, что ты мне отвечаешь чаще других и я очень тебе признателен, но я бы хотел бы разобраться в концепции баз данных, узнать как они заботают. Эта идея пришла мне в голову после недели мучений и постоянной головной боли. Как разместить поля выборки? Как лучше подключиться к ДБ, через DBQ или как то по другому? И т.д. Я считаю, что необходимо во всем разобраться и дать подробные объяснения другим, если мне может кто нибуть помочь... помогите!
если ты работаешь с ADO, то механизм, примерно, следующий:
1.Соединяешься с базой данной (выбираешь через какие драйвера, задаешь параметры соединения).
2.Копируешь данные в свою программу.
3.Отключаешься от бд.
4.Манипулируешь с данными в своей программе.
5.Если необходимо, подключаешься снова к бд и модифицируешь данные в бд.
В принципе, этот механизм универсален.
Используемые в ADO класссы зависят от версии ADO (имхо, ADO.NET лучше адаптирован к работе с бд).
Но в целом:
Connection - для создания соединения с бд,
Command - для формирования команды бд на базе SQL.
Record - одна запись
RecordSet - несколько записей
каждый из объектов имеет ряд парметров.
Объект Command - позволяет выполнять запросы SQL:
SELECT, INSERT, UPDATE, or DELETE.
Не помню, как в просто ADO, но в ADO.NET каждую команду надо конфигурировать, что означает один объект команды, выполняет одну конкретную команду (для одной таблицы, определенного вида). Для конфигурации есть вспомогательный объект - CommandBuilder.
Если у тебя куча связанных таблиц и есть перекрестные запросы надо использовать mapping.
В принципе, ничего сложного в работе с бд нет. Описывать все подробно - это на несколько страниц будет. Начинай ковыряться, задавай конкретные вопросы, чем сможем - поможем.
если ты работаешь с ADO, то механизм, примерно, следующий:
1.Соединяешься с базой данной (выбираешь через какие драйвера, задаешь параметры соединения).
Если не трудно, приведи пример.
Начинай ковыряться, задавай конкретные вопросы, чем сможем - поможем.
Вопрос один. Есть исходник программы с коментариями? Я думаю что это лучшее решение в моей ситуации.
Вопрос один. Есть исходник программы с коментариями? Я думаю что это лучшее решение в моей ситуации.
http://www.firststeps.ru
Там есть, как с ODBC работать, с OLEDB.
http://www.rsdn.ru/
Конкретно:
http://www.rsdn.ru/summary/248.xml
http://www.firststeps.ru
Там есть, как с ODBC работать, с OLEDB.
http://www.rsdn.ru/
Конкретно:
http://www.rsdn.ru/summary/248.xml
Спасибо тебе ОГРОМНОЕ, я и не знал про такой класный сайт. Кроме баз данных там и графика есть (мое хобби), вобщем что душа пожелает.