Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Таблица ACCESS и ADO / 2 сообщений из 2, страница 1 из 1
17.11.2008, 18:14
    #35658691
Владимир2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица ACCESS и ADO
MFC, Microsoft Visual Studio 2008.
На нижеидущей строке
Код: plaintext
1.
2.
pCommand->CommandText = "Select * From Table_1";
pRecordset->Open ((IDispatch *) pCommand, vtMissing, adOpenForwardOnly,
			adLockReadOnly, adCmdUnknown); 
имею сообщениен:
IDispatch error #3092 Code meaning = %s
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Если указать любую другую таблицу базы, кроме таблицы Table_1, то код 
продолжает выполняться дальше вниз, всё ОК!
А для таблицы Table_1 следующий оператор не выполняется. 
Аварийного завершения нет. Чем не нравится
указанная таблица функции pRecordset->Open() ?
Если таблицу скопировать и сохранить под другим именем, то ОК! 
Где и что сделать, чтобы появилась ‘любовь’ к имени таблицы ‘Table_1’?

Ниже показываю полный код, прикреплёный к командной кнопке на dialog window:
void CAdodc_my::OnBnClickedButton8()
{
	_CommandPtr pCommand;
	HRESULT hr = pCommand.CreateInstance (__uuidof (Command));
	if (FAILED (hr))
	{
		AfxMessageBox ("Can't create an instance of Command");
		return;
	}
	pCommand->ActiveConnection = m_pConn2; // значение переменной m_pConn2 
		// определено в событии OnInitDialog(), оно указывает 
		// что подсоединена  база ACCESS
pCommand->CommandText = "Select * From Table_1"; // Table_1 -
// имя таблицы из множества их в базе ACCESS
	_RecordsetPtr pRecordset;
	hr = pRecordset.CreateInstance (__uuidof (Recordset));
	if (FAILED (hr))
	{
		AfxMessageBox ("Can't create an instance of Recordset");
		return;
	}
	pRecordset->CursorLocation = adUseClient;
	pRecordset->Open ((IDispatch *) pCommand, vtMissing, adOpenForwardOnly,
			adLockReadOnly, adCmdUnknown); 

// если указать любую
// другую таблицу базы, кроме таблицы Table_1, то код 
продолжает выполняться дальше вниз, всё ОК!
А для таблицы Table_1
следующий оператор не выполняется. Аварийного завершения нет. Чем не нравится
указанная таблица функции pRecordset->Open() ?

{
. . . 
}
	} 
	catch( _com_error &e )
	{
		_bstr_t bstrSource(e.Source());
		_bstr_t bstrDescription(e.Description());
		TRACE( "Exception thrown for classes generated by #import" );
		TRACE( "\tCode = %08lx\n", e.Error());
		TRACE( "\tCode meaning = %s\n", e.ErrorMessage());
		TRACE( "\tSource = %s\n", (LPCTSTR) bstrSource);
		TRACE( "\tDescription = %s\n", (LPCTSTR) bstrDescription);
		MessageBox("\tCode meaning = %s\n", e.ErrorMessage()); 
	}
	catch (...)
	{
		TRACE ( "*** Unhandled Exception ***" );
		MessageBox("*** Unhandled Exception ***" );
	}
...
Рейтинг: 0 / 0
18.11.2008, 10:53
    #35659712
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица ACCESS и ADO
перенесу ка я вас в форум по ADO, всё одно тут ничего не говорят.
Тема вообще к С++ мало относится.

Модератор: Тема перенесена из форума "C++".
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Таблица ACCESS и ADO / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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