Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ C и С++ FAQ _ прошу помощи связь с базой данных через Odbc

Автор: кнопикс 25:04:2007, 07:18

Ребят столкнулся с проблемой. Нужно написать простенькое консольное приложение для связи с БД (Paradox, Accces, Oracle любую на выбор мне лучше Paradox) и получение в консоли результата запроса затем на основании полученного отправляеться динамический SQL запрос на обновление записей таблицы, с запросами разобрался вопрос в том как подключиться к БД через ODBC именно сам код . Язык приложения обязательно С или С++ пишу на них всего 3 недели поэтому если можно попроще. Мне б только сам код подключения и какие заголовочные включать. Заранее благодарю. ЗЫ работу сдавать через 5 дней = (( PS. забыл добавить база данных локальная можно даже в каталоге с программой

Автор: SunSanych 25:04:2007, 08:27

#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

Автор: кнопикс 26:04:2007, 01:49

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, 07:20

Цитата(кнопикс @ 26:04:2007, 04:49 )
я писал вручную и использовал Borland C++ Compiler 5.5 но там нет заголовочного afxdb.h
*

Приведенный выше пример предназначен для Visual Studio. Подробности ЗДЕСЬ
В Builder 6.0 можно использовать компоненты доступа к данным. Подробности ЗДЕСЬ

Автор: SunSanych 26:04:2007, 07:42

European полностью прав - мой пример из MS Visual Studio с включенной в проект библиотеки MFC и в Builder это не сработает sad.gif . Сам Builder не пользовался и ничего сказать не могу, так что отсылаю по ссылке выше.

Автор: кнопикс 26:04:2007, 12:43

Ребят спасибо большое но боюсь что Visual Studio за оставшееся время до сдачи лабораторной мне не осилить боьше время потрачу на разбор среды чем на написание программы. А можно ли установить соединение используя только библиотеки Борланд Компилера пусть не ODBC а что нибудь другое может BDE или ещё что. Мне суть соединения не столь важна скорость тоже объём данных для пересылки мизер главно чтоб было любое соединение.

Автор: European 26:04:2007, 12:47

Я же тебе ссылку дал, что не устраивает?

Автор: кнопикс 26:04:2007, 13:50

ТО European Спасибо за ответ. Не устраивает:

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

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

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

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

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

ЗЫ: хотя с Visual Studio всётки попробую

Автор: European 26:04:2007, 14:04

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

Данные компоненты можно использовать и в консольном приложении, только создавай их динамически и инициализируй прямо в коде.

Автор: sax_ol 26:04:2007, 15:15

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

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

Автор: кнопикс 26:04:2007, 23:47

[quote]

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

Именно это я и имел ввиду когда просил попроще laugh.gif

Автор: European 27:04:2007, 08:15

Для: кнопикс
Ну так заплати пару баксов и тебе все напишут... Самый простой вариант

Автор: sax_ol 27:04:2007, 08:23

или купить готовое, тоже вариант не сложный

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)