Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: прошу помощи связь с базой данных через Odbc
Форум программистов > Системное программирование > C, С++ и С Builder > C и С++ FAQ
кнопикс
Ребят столкнулся с проблемой. Нужно написать простенькое консольное приложение для связи с БД (Paradox, Accces, Oracle любую на выбор мне лучше Paradox) и получение в консоли результата запроса затем на основании полученного отправляеться динамический SQL запрос на обновление записей таблицы, с запросами разобрался вопрос в том как подключиться к БД через ODBC именно сам код . Язык приложения обязательно С или С++ пишу на них всего 3 недели поэтому если можно попроще. Мне б только сам код подключения и какие заголовочные включать. Заранее благодарю. ЗЫ работу сдавать через 5 дней = (( PS. забыл добавить база данных локальная можно даже в каталоге с программой
SunSanych
#include <afxdb.h> // MFC ODBC database classes

CDatabase db;

try
{
db.OpenEx("DSN=SourceDB;UID=userDB;PWD=megapassword",CDatabase::noOdbcDialog);
}
catch(CDBException* e )
{
// Обработчик ошибки.
e->Delete();
return FALSE;
}

Самое интересное здесь - это первая строка в функции OpenEx().
DSN - имя источника данных ODBC.
UID - имя пользователя, которому разрешен доступ к БД.
PWD - его пароль

Все остальные настройки находятся в самом источнике данных ODBC. Эти настройки отличаются для разных драйверов ODBC, поэтому надо смотреть на месте.

P.S. Кстати, второй параметр задает некоторые иногда полезные настройки, их можно посмотреть в MSDN или прямо в исходниках. У них понятные названия. Например noOdbcDialog - подавляет появление окна где можно выбрать источник данных ODBC. Но обычно это свойство устанавливается, чтобы не тыкать стопятдесяттысячный раз мышкой, выбирая один и тот же источник. smile.gif
кнопикс
San Sanych огромное спасибо за ответ. Но теперь возникла новая проблема =(( , я писал вручную и использовал Borland C++ Compiler 5.5 но там нет заголовочного afxdb.h поставил Builder 6.0 там есть но проблема он в папке MFC а подключить его не могу то что в папке include подключаеться а во вложеных нет вообщем чайник я ещё тот но лабораторную делать надо ((.
Навыка написания в Билдере 1 день до этого писал только вручную и только простые програмки для консоли. Если можно объясни как подключить заголовочные файлы не из папки include для Билдера или если можно то как их добавить для компилятора мне с ним как то привычней. И второе я так понял что вместо выражения DSN=SourceDB в функции OpenEX нужно указать тип источника данных или просто путь к файлу базы с его именем типа С:\...\org.db или вообще просто имя DSN=org.db.
European
Цитата(кнопикс @ 26:04:2007, 04:49 )
я писал вручную и использовал Borland C++ Compiler 5.5 но там нет заголовочного afxdb.h
*

Приведенный выше пример предназначен для Visual Studio. Подробности ЗДЕСЬ
В Builder 6.0 можно использовать компоненты доступа к данным. Подробности ЗДЕСЬ
SunSanych
European полностью прав - мой пример из MS Visual Studio с включенной в проект библиотеки MFC и в Builder это не сработает sad.gif . Сам Builder не пользовался и ничего сказать не могу, так что отсылаю по ссылке выше.
кнопикс
Ребят спасибо большое но боюсь что Visual Studio за оставшееся время до сдачи лабораторной мне не осилить боьше время потрачу на разбор среды чем на написание программы. А можно ли установить соединение используя только библиотеки Борланд Компилера пусть не ODBC а что нибудь другое может BDE или ещё что. Мне суть соединения не столь важна скорость тоже объём данных для пересылки мизер главно чтоб было любое соединение.
European
Я же тебе ссылку дал, что не устраивает?
кнопикс
ТО European Спасибо за ответ. Не устраивает:

Билдер не подходит так как необходимо написать консольное приложение а в Билдере указанные компонеты добавляются в форму а можно ли их использовать для консоли и как я не знаю

Visual Studio её отсутствие и полное неуменее с ней работать а учиться просто некогда до сдачи 4 дня по ссылке расписано конечно очень здорово но всё равно боюсь что вряд ли успею разобраться sad.gif хотя всё равно завтра куплю да всё таки попробую

А использовать этот код для написания вручную не получается так как в Borland C++ Compiler 5.5 нет MFC и как её туда добавить не знаю

А главное sad.gif Язык приложения обязательно С или С++ пишу на них всего 3 недели

Так что если можно подскажи как сделать иначе

ЗЫ: хотя с Visual Studio всётки попробую
European
Цитата(кнопикс @ 26:04:2007, 16:50 )
Билдер не подходит так как необходимо написать консольное приложение а в Билдере указанные компоненты добавляются в форму а можно ли их использовать для консоли и как я не знаю
*

Данные компоненты можно использовать и в консольном приложении, только создавай их динамически и инициализируй прямо в коде.
sax_ol
Цитата(European @ 26:04:2007, 17:04 )
только создавай их динамически и инициализируй прямо в коде.

и не забывать освобождать память ... smile.gif
кнопикс
[quote]

Ну спасибо ohmy.gif

Именно это я и имел ввиду когда просил попроще laugh.gif
European
Для: кнопикс
Ну так заплати пару баксов и тебе все напишут... Самый простой вариант
sax_ol
или купить готовое, тоже вариант не сложный
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.