прошу помощи связь с базой данных через Odbc

Тема в разделе "C и С++ FAQ", создана пользователем -, 25 апр 2007.

Статус темы:
Закрыта.
  1. Гость

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

    SunSanych Well-Known Member

    Регистрация:
    28 июн 2006
    Сообщения:
    71
    Симпатии:
    0
    #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. Но обычно это свойство устанавливается, чтобы не тыкать стопятдесяттысячный раз мышкой, выбирая один и тот же источник. :(
     
  3. Гость

    San Sanych огромное спасибо за ответ. Но теперь возникла новая проблема =(( , я писал вручную и использовал Borland C++ Compiler 5.5 но там нет заголовочного afxdb.h поставил Builder 6.0 там есть но проблема он в папке MFC а подключить его не могу то что в папке include подключаеться а во вложеных нет вообщем чайник я ещё тот но лабораторную делать надо ((.
    Навыка написания в Билдере 1 день до этого писал только вручную и только простые програмки для консоли. Если можно объясни как подключить заголовочные файлы не из папки include для Билдера или если можно то как их добавить для компилятора мне с ним как то привычней. И второе я так понял что вместо выражения DSN=SourceDB в функции OpenEX нужно указать тип источника данных или просто путь к файлу базы с его именем типа С:\...\org.db или вообще просто имя DSN=org.db.
     
  4. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-кнопикс+26:04:2007, 04:49 -->
    <span class="vbquote">(кнопикс @ 26:04:2007, 04:49 )</span><!--QuoteEBegin-->я писал вручную и использовал Borland C++ Compiler 5.5 но там нет заголовочного afxdb.h
    [snapback]63495" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Приведенный выше пример предназначен для Visual Studio. Подробности ЗДЕСЬ
    В Builder 6.0 можно использовать компоненты доступа к данным. Подробности ЗДЕСЬ
     
  5. SunSanych

    SunSanych Well-Known Member

    Регистрация:
    28 июн 2006
    Сообщения:
    71
    Симпатии:
    0
    European полностью прав - мой пример из MS Visual Studio с включенной в проект библиотеки MFC и в Builder это не сработает :blink: . Сам Builder не пользовался и ничего сказать не могу, так что отсылаю по ссылке выше.
     
  6. Гость

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Я же тебе ссылку дал, что не устраивает?
     
  8. Гость

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

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

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

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

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

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

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-кнопикс+26:04:2007, 16:50 -->
    <span class="vbquote">(кнопикс @ 26:04:2007, 16:50 )</span><!--QuoteEBegin-->Билдер не подходит так как необходимо написать консольное приложение а в Билдере указанные компоненты добавляются в форму а можно ли их использовать для консоли и как я не знаю
    [snapback]63636" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Данные компоненты можно использовать и в консольном приложении, только создавай их динамически и инициализируй прямо в коде.
     
  10. Гость

     
  11. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Для: кнопикс
    Ну так заплати пару баксов и тебе все напишут... Самый простой вариант
     
Загрузка...
Похожие Темы - прошу помощи связь
  1. webwareroot
    Ответов:
    1
    Просмотров:
    127
  2. virusksv
    Ответов:
    2
    Просмотров:
    1.199
  3. beloff
    Ответов:
    5
    Просмотров:
    1.849
  4. nemo85
    Ответов:
    3
    Просмотров:
    1.477
  5. xavi
    Ответов:
    1
    Просмотров:
    1.839
Статус темы:
Закрыта.

Поделиться этой страницей