Создание параметра типа DECIMAL
От: gluq Украина  
Дата: 05.04.05 15:23
Оценка:
Эта программа успешно работает если заменить adDecimal на adDouble (хотя дробная часть безжалостно округляется, что меня и не устраивает). А так при выполнении execute падает исключение (error #3105, "Multiple-step OLE DB operation generated error").
Подскажите чайнику, кто виноват? и что делать?

_bstr_t txt(L"insert into timet (yield) values (?)"), zero(L"");
_ConnectionPtr cn("ADODB.Connection");
_CommandPtr cmd("ADODB.Command");
cn->Open("Data Source=MQIS;Initial Catalog=quotes;", zero, zero, adConnectUnspecified);
cmd->PutRefActiveConnection(cn);
cmd->PutCommandText(txt);
CComVariant v("234567891235,739987");
TESTHR( v.ChangeType(VT_DECIMAL) );
_ParameterPtr pp = cmd->CreateParameter(zero, adDecimal, adParamInput, -1, v);
pp->Value = v;
cmd->Parameters->Append(pp);
cmd->Execute(NULL, NULL, adCmdText);
cn->Close();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.