Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ODBC API, Как работать с базой данных 
:(
    Опции темы
Леприкон
Дата 5.8.2004, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2004

Репутация: нет
Всего: нет



Привет...

Есть такой вопросик: как через API получить доступ к базе данных, которая храниться на MS SQL Server... В принципе на локальной машине настроен ODBC для работы с этой базой... Помогите примерчиком, плиз, как подключиться, как открыть, как получить данные, как записать данные, и как закрыть базу данных... В принципе получение и запись делаються с помощью запросов, а вот как получить данные, возвращённые запросом по SELECT ? Если кто работал, объясните и поделитесь примерчиком, очень надо!!!

Спасибо...
PM MAIL   Вверх
Temnozor
Дата 5.8.2004, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 27.6.2002
Где: Тюмень

Репутация: нет
Всего: нет



--------------------
Take a ride on, ride on, on your rotting horse on that deadly ground Take a ride, ride on, on your rotting horse with a pounding sound.
PM   Вверх
Леприкон
Дата 5.8.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2004

Репутация: нет
Всего: нет



Спасибо :-), то что надо :-)
PM MAIL   Вверх
Леприкон
Дата 5.8.2004, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2004

Репутация: нет
Всего: нет



Так с этим понятно, а без MFC есть что-нибудь??? qstn.gif
PM MAIL   Вверх
Temnozor
Дата 6.8.2004, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 27.6.2002
Где: Тюмень

Репутация: нет
Всего: нет



Цитата
Так с этим понятно, а без MFC есть что-нибудь??? qstn.gif

Наверное, да.
Все что сделано в MFC, можно реализовать без него. Но надо ли? Довольно геморройно может получиться.
Во всяком случае, замены CDatabase я не знаю.
--------------------
Take a ride on, ride on, on your rotting horse on that deadly ground Take a ride, ride on, on your rotting horse with a pounding sound.
PM   Вверх
Леприкон
Дата 6.8.2004, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2004

Репутация: нет
Всего: нет



мне нужно сонсольное приложение и размер приложения довольнотаки критичен... по этому таскать с собой классы MFC не хочеться :-(
PM MAIL   Вверх
Temnozor
Дата 6.8.2004, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 27.6.2002
Где: Тюмень

Репутация: нет
Всего: нет



На самом деле приложение с MFC совсем не намного больше.
Указываешь в свойствах проекта: Use MFC in a Shared DLL. Ставишь Release (а не Debug, тогда точно таскать придется). Компилируешь.
Сгенеренный exe-шник будет небольшим и ничего с ним таскать не придется.
--------------------
Take a ride on, ride on, on your rotting horse on that deadly ground Take a ride, ride on, on your rotting horse with a pounding sound.
PM   Вверх
AlexNor
Дата 9.8.2004, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 11.6.2004

Репутация: нет
Всего: 2



Можно и без MFC токо большо гемора....
Посмотри функции в MSDN: Data Access->Microsoft Data Component->Microsoft Open Database Connectivity(ODBC)
Там и примеры есть, типа:
Код

SQLHENV     henv;
SQLHDBC     hdbc;
SQLHSTMT    hstmt;
SQLRETURN   retcode;

     /*Allocate environment handle */
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
  /* Set the ODBC version environment attribute */
  retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);

  if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
     /* Allocate connection handle */
     retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);

     if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
        /* Set login timeout to 5 seconds. */
        SQLSetConnectAttr(hdbc, (void*)SQL_LOGIN_TIMEOUT, 5, 0);

        /* Connect to data source */
        retcode = SQLConnect(hdbc, (SQLCHAR*) "Sales", SQL_NTS,
                 (SQLCHAR*) "JohnS", SQL_NTS,
                 (SQLCHAR*) "Sesame", SQL_NTS);

        if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
           /* Allocate statement handle */
           retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);

           if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
           /* Process data */
                ;
                ;
                ;

              SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
           }
           SQLDisconnect(hdbc);
        }
        SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
     }
  }
  SQLFreeHandle(SQL_HANDLE_ENV, henv);


Я писал прогу чисто на Win32, но давненько это было (и на предыдущей работе), сорсы дома должны валятся - если нужно ещё - постараюсь найти.


--------------------
"... зачем тратить время на учение, если невежество даётся даром..."" .... но невежество обходится, порой, слишком дорого... "
PM MAIL   Вверх
Олег М
Дата 9.8.2004, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Леприкон
А через OLE DB или ADO не пробовал? Вроде веселее чем ОДБС.
PM MAIL ICQ   Вверх
AlexNor
Дата 9.8.2004, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 11.6.2004

Репутация: нет
Всего: 2



Олег М
на Win32 API + функции ODBC можно прогу и в 16КБайт запхнуть smile.gif rolleyes.gif


--------------------
"... зачем тратить время на учение, если невежество даётся даром..."" .... но невежество обходится, порой, слишком дорого... "
PM MAIL   Вверх
Леприкон
Дата 9.8.2004, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2004

Репутация: нет
Всего: нет



Ещё один глупый вопрос:
В каком заголовочном файле описывается класс CDatabase? и все переменные связанные для работы с БД?
PM MAIL   Вверх
Олег М
Дата 9.8.2004, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Цитата
В каком заголовочном файле описывается класс CDatabase? и все переменные связанные для работы с БД?

<afxdb.h>

Цитата
Ещё один глупый вопрос:

Да уж. Напиши в вижуал студии слово CDatabase и нажми на нём правой кнопкой мыши, потом Go To Definition и смотри.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.