powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / ADO - CreateParameter - Binary - error 0x800A0D5D
6 сообщений из 6, страница 1 из 1
ADO - CreateParameter - Binary - error 0x800A0D5D
    #38433286
andreybs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В команде ADODB.Command нужно передать и вернуть значение параметра типа timestamp (по сути это varbinary(8)). Создание параметра команды (CreateParameter) падает с ошибкой 0x800A0D5D, когда я выбираю тип adBinary и передаю значение PVOID или PCHAR или BSTR. Может есть у кого пример использования бинарного параметра в команде ADO?

Код: plaintext
1.
2.
3.
4.
5.
6.
_ParameterPtr TADOParams::ParamBinary(_bstr_t name, PCHAR value, long size, bool output)
{
	_ParameterPtr p = GetCommand()->CreateParameter(name, adBinary, (output ? adParamInputOutput : adParamInput), size, value); // run-time error 0x800A0D5D
	pPrm->Append(p);
	return p;
}
...
Рейтинг: 0 / 0
ADO - CreateParameter - Binary - error 0x800A0D5D
    #38433317
andreybs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После танцев с бубном выяснилось, что интерфейс падает, если предварительно не обнулить буфер. Но считать tamestamp так и не получилось, пришлось на стороне sql-server конвертить tamestamp в varbinary(8). Если кто работал с tamestamp через ado, подскажите какие типы параметра совместимы.
...
Рейтинг: 0 / 0
ADO - CreateParameter - Binary - error 0x800A0D5D
    #38433333
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreybs... ADODB.Command ... падает с ошибкой 0x800A0D5D,
Если хочешь писать на ADO, запомни вот эту ссылку: http://msdn.microsoft.com/en-us/library/ms677004(v=vs.85).aspx
Судя по номеру ошибки твой timestamp (как его понимает драйвер базы данных) не является adBinary.

Лучше всего поискать доку на твою базу, на тот драйвер (odbc или oledb) который ты используешь. И поискать там чем являются timestamp на самом деле.
Ну а если доки нет, то ходи сюда и подбирай методом тыка.
http://msdn.microsoft.com/en-us/library/ms675318(v=vs.85).aspx
...
Рейтинг: 0 / 0
ADO - CreateParameter - Binary - error 0x800A0D5D
    #38433408
andreybs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlНу а если доки нет, то ходи сюда и подбирай методом тыка.


Приходится так и делать. С timestamp вроде разобрался - с ним легко через bigint работать.

Появилась новая трабла - GUID. С ним та же хрень - непонятно, как его передать через _variant_t, чтобы создать параметр команды. _variant_t не работает с GUID напрямую. Переконвертация GUID->PCHAR, как в случае с Binary не прокатывает, выводит ошибку при создании параметра. Пока единственный рабочий вариант - работа с GUID через преобразование в строку.
...
Рейтинг: 0 / 0
ADO - CreateParameter - Binary - error 0x800A0D5D
    #38433450
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreybsПоявилась новая трабла - GUID.
Запусти select и посмотри какой тип поля для него возвращается. Потом создавай параметр
этого же типа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ADO - CreateParameter - Binary - error 0x800A0D5D
    #38433498
andreybs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovandreybsПоявилась новая трабла - GUID.
Запусти select и посмотри какой тип поля для него возвращается. Потом создавай параметр
этого же типа.


Дельный совет!
Оказалось, что тип параметра должен быть adGUID, а значение в виде BSTR.
Век учись...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / ADO - CreateParameter - Binary - error 0x800A0D5D
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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