powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка при подключении к Oracle через ODBC
2 сообщений из 2, страница 1 из 1
Ошибка при подключении к Oracle через ODBC
    #33217846
Фотография Big17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В следующем коде возникает ошибка No columns where bound prior to calling SQLFetchScroll

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
	cdb.Open("TEST");
	if (cdb.IsOpen())
	{
		try
		{
			CRecordset cr(&cdb);

			cr.Open(CRecordset::snapshot, "SELECT * FROM TABLE"); 

			cr.Close();


		}
		catch(CDBException cdb)
		{
			AfxMessageBox(cdb.m_strStateNativeOrigin);
		}
	}


если точнее, то в строке

Код: plaintext
1.
cr.Open(CRecordset::snapshot, "SELECT * FROM ASQ_MATERIALS"); 

Подключаюсь к Oralce 8.1.7 через ODBC-драйвер (пробовал разные драйвера для оракла - результат одинаковый). В режиме CRecordset::forwardOnly все работает хорошо, а вот как только CRecordset::snapshot - получается упомянутая ошибка.

Что делать?
...
Рейтинг: 0 / 0
Ошибка при подключении к Oracle через ODBC
    #33217975
Фотография Big17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался сам. Кстати таже ошибка происходит не только с Oracle, но и с MS SQL Server'ом. Я неправильно открывал соединение с базой данных, точнее, неправильно указывал последний параметр в методе Open (по умолчанию, он TRUE).

Правильно так:
Код: plaintext
1.
cdb.Open("TEST", FALSE, FALSE, _T("ODBC;UID=TEST;PWD=TEST"), FALSE);

Вот что говорит по поводу последнего параметра MSDN:
MSDN
bUseCursorLib
TRUE if you want the ODBC Cursor Library DLL to be loaded. The cursor library masks some functionality of the underlying ODBC driver, effectively preventing the use of dynasets (if the driver supports them). The only cursors supported if the cursor library is loaded are static snapshots and forward-only cursors. The default value is TRUE. If you plan to create a recordset object directly from CRecordset without deriving from it, you should not load the cursor library.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка при подключении к Oracle через ODBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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