powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как вызвать запрос в Access'e из приложения (C++, ADO) ?
3 сообщений из 3, страница 1 из 1
Как вызвать запрос в Access'e из приложения (C++, ADO) ?
    #33816737
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здравствуйте.
Вот текст запроса в акцессе

UPDATE ProjectT SET DocumentT = [@Document]
WHERE ID=[@TID];


вот как его вызываю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
	_CommandPtr pexec_sp = NULL;
	pexec_sp.CreateInstance(__uuidof(Command));
	try
	{
		pexec_sp->ActiveConnection = CWorkDB::Instance()->GetConnectionPtr();
		pexec_sp->CommandText = "ProjectTSaveDoc";
		pexec_sp->CommandType = adCmdStoredProc;

		_variant_t vtparam;
		vtparam.vt = VT_I4;
		vtparam.intVal = m_iDocID;
		pexec_sp->Parameters->Append(pexec_sp->CreateParameter("@TID", adInteger, adParamInput,  0 , vtparam));

		vtparam.Clear();
		vtparam.vt = VT_BLOB;
		pexec_sp->Parameters->Append(pexec_sp->CreateParameter("@Document", adVariant, 
			adParamInput,  0 , stream_out->Read(adReadAll)));

		_variant_t vtresult;
		pexec_sp->Execute(NULL, NULL, adCmdStoredProc); // вот здесь приложение падает :(
	}
подскажите, пожалуйста, как можно вызвать запрос с параметрами?
...
Рейтинг: 0 / 0
Как вызвать запрос в Access'e из приложения (C++, ADO) ?
    #33816786
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичок_яВсем здравствуйте.
Вот текст запроса в акцессе

UPDATE ProjectT SET DocumentT = [@Document]
WHERE ID=[@TID];


вот как его вызываю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
	_CommandPtr pexec_sp = NULL;
	pexec_sp.CreateInstance(__uuidof(Command));
	try
	{
		pexec_sp->ActiveConnection = CWorkDB::Instance()->GetConnectionPtr();
		pexec_sp->CommandText = "ProjectTSaveDoc";
		pexec_sp->CommandType = adCmdStoredProc;

		_variant_t vtparam;
		vtparam.vt = VT_I4;
		vtparam.intVal = m_iDocID;
		pexec_sp->Parameters->Append(pexec_sp->CreateParameter("@TID", adInteger, adParamInput,  0 , vtparam));

		vtparam.Clear();
		vtparam.vt = VT_BLOB;
		pexec_sp->Parameters->Append(pexec_sp->CreateParameter("@Document", adVariant, 
			adParamInput,  0 , stream_out->Read(adReadAll)));

		_variant_t vtresult;
		pexec_sp->Execute(NULL, NULL, adCmdStoredProc); // вот здесь приложение падает :(
	}
подскажите, пожалуйста, как можно вызвать запрос с параметрами?

А зачем ты параметр чистишь ДО выполнения ХП? И меняешь ему тип данных? Может в этом проблема?
...
Рейтинг: 0 / 0
Как вызвать запрос в Access'e из приложения (C++, ADO) ?
    #33818137
Новичок_я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
параметр чищу и меняю потому что в запросе эти параметры разного типа.
Append передает параметр по значению, соответственно, после аппенда можно использовать переменную дальше
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как вызвать запрос в Access'e из приложения (C++, ADO) ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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