powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по подключению через ODBC
5 сообщений из 5, страница 1 из 1
Вопрос по подключению через ODBC
    #34412466
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пожалуйство, почему при компановке проекта с кодом
выдаются сообщения
Error 1 error LNK2001: unresolved external symbol _SQLDataSources@32 DBConnectionPage.obj
:
Error 2 error LNK2001: unresolved external symbol _SQLAllocEnv@4 DBConnectionPage.obj

Может быть я не подключил, какую нибудь библитеку?
#include "stdafx.h"
#include "TelemechanicServer.h"
#include "DBConnectionPage.h"

#include "sqltypes.h"
#include "sqlext.h"
#include "sql.h"




BOOL CDBConnectionPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();

//здесь мы получаем списко системных DSN
//и инциализируем им combobox
CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_SELECT_DSN_COMBO);
CButton* pCheck = (CButton*)GetDlgItem(IDC_USE_DSN_CHECK);
if(!pCombo)
return FALSE;
//создаем описатель для получения списка системных источников ODBC
SQLHENV handle;
SQLRETURN result;
if (SQLAllocEnv(&handle) == SQL_ERROR)
return FALSE;

//получаем сам список и добавляем его элементы в список
//combobox
SQLSMALLINT dsnlength, descrlength;
SQLCHAR dsn[SQL_MAX_DSN_LENGTH + 1];
SQLCHAR descr[SQL_MAX_OPTION_STRING_LENGTH + 1];
memset(dsn, 0, sizeof(dsn));
memset(descr, 0, sizeof(descr));
result = SQLDataSources(handle,
SQL_FETCH_FIRST_SYSTEM,
dsn,
sizeof(dsn),
&dsnlength,
descr,
sizeof(descr),
&descrlength);
while(SQL_SUCCEEDED(result))
{
pCombo->AddString(CString(dsn)); //добавляем имя в combobox
result = SQLDataSources(handle, //получаем следующее имя
SQL_FETCH_NEXT,
dsn,
sizeof(dsn),
&dsnlength,
descr,
sizeof(descr),
&descrlength);
}
if(connectionString.Find("DSN=") != -1)
{
//если строка подключения содержит имя DSN, то выделяем его в combobox
CString tmp;
for(int i = 0; i < pCombo->GetCount(); i++)
{
pCombo->GetLBText(i, tmp);
if((CString("DSN=") + tmp) == connectionString)
{
pCombo->SetCurSel(i);
pCheck->SetCheck(1);
OnBnClickedUseDsnCheck();
break;
}
}
}

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
...
Рейтинг: 0 / 0
Вопрос по подключению через ODBC
    #34412470
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
odbc32.lib
...
Рейтинг: 0 / 0
Вопрос по подключению через ODBC
    #34412493
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не стоит использовать ODBC2, лучше ODBC3 - там ошибки чуть более инофрмативные.
После получения хендла окружения дай команду:
Код: plaintext
RetCode = SQLSetEnvAttr(handle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3,  0 );
...
Рейтинг: 0 / 0
Вопрос по подключению через ODBC
    #34412532
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я добавил в начале файла директиву, но это не помогло.
#pragma comment(lib,"C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib\odbc32.lib")
...
Рейтинг: 0 / 0
Вопрос по подключению через ODBC
    #34412595
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое. Добавил библиотеку через оции линкера и вроде бы заработало.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по подключению через ODBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]