Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как програмно сделать источник ODBC, Помогите пожалуйста! 
:(
    Опции темы
Edik
Дата 20.9.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



Как програмно мне например создать источник данных в ODBC с названием Student Registration? Что бы не заходить в панель управления Виндовс. Нужно использовать видимо SQLConnect() но там навороченные параметры, я не знаю как это сделать. Опишите кто нибудь, если можете.
PM MAIL   Вверх
HappyLife
Дата 20.9.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код
int main(int argc, char* argv[])

{

        char * FileName = "OLDGTKBase";

        SQLHENV henv = 0;

        const wchar_t * CError= L"ERROR";

        const wchar_t * CErrorConnect = L"ERROR Connecting ODBC";

        if (SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv) == SQL_ERROR)

        {

                MessageBoxW(NULL,CErrorConnect, CError,MB_OK | MB_ICONERROR);

                return false;

        }

        SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,(void*) SQL_OV_ODBC3, SQL_IS_INTEGER);

        SQLHDBC hdbc = 0;

        if (SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc) == SQL_ERROR)

        {

                MessageBoxW(NULL,CErrorConnect,CError,MB_OK | MB_ICONERROR);

                return false;

        }

        char * User = "";

        char * Password = "";

        if (SQLConnect(hdbc, (SQLTCHAR*)FileName, SQL_NTS,

        (SQLTCHAR*)User, sizeof(User), (SQLTCHAR*)Password,

         sizeof(Password) ) == SQL_ERROR )

        {

                char* driver = "Microsoft Access Driver (*.mdb)";

                char* params = "DSN=OLDGTKBase" "\0"

                               "DefaultDir=\\gtkserver\\Base" "\0"

                               "DBQ=\\\\gtkserver\\Base\\n_data_2005.mdb"

                               "\0";

                SQLConfigDataSource(NULL, ODBC_ADD_DSN, driver, params);

        }

        return true;

}

Вот так делал я. Думаю найдешь что надо изменить для своих целей. Удачи.
PM MAIL   Вверх
Edik
Дата 21.9.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



Ой, если бы сразу под винду!!! А то я запутаюсь.
PM MAIL   Вверх
CLIPSA
Дата 22.9.2007, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Зачем тебе нужно создавать источник данных? Можно и без него обойтись. 
Например для АССESS: 
Код

#include "afxdb.h"
CDatabase MyDatabase;MyDatabase.OpenEx("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\\Mydb.mdb",CDatabase::noOdbcDialog);
CRecordset MyRecordset(&MyDatabase);
MyRecordset.Open(CRecordset::forwardOnly, "SELECT *  FROM MyTable");//Теперь делаем запрос


Ну если уж сильно тебе хочется создать источник данных  Student Registration, то код такой (для  АССESS ):
Код

#include "afxdb.h"
SQLConfigDataSource(NULL, ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)", "DSN=Student Registration\0DBQ=c:\\Mydb.mdb");


Это сообщение отредактировал(а) CLIPSA - 22.9.2007, 23:50
PM MAIL   Вверх
Slawutich
Дата 23.9.2007, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 14.7.2007
Где: Украина г.Одесса

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



На этом сайте выбираеш свою базу данных
Строки подключений
копируеш стороку подключения и вставляеш в метод Open, Класса  CDatabase

вот пример открытия Firebird-а

Код

CDatabase m_Database;
CString conectionstring=_T("Driver=Firebird/InterBase(r) driver;Uid=SYSDBA;Pwd=masterkey;DbName=127.0.0.1:C:\\MyDatabase\\DataBase.fdb;");
m_Database.Open(NULL,FALSE,FALSE,conectionstring);


И не надо привязываться к системе создавая источники данных(DSN)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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