Re[5]: Как получить ID новой строки
От: StanislavK Великобритания  
Дата: 17.10.02 08:58
Оценка:
P>
P>_RecordsetPtr recordSet=NULL;    //recordset object
P>_ConnectionPtr connection=NULL;
P>connection.CreateInstance(__uuidof(Connection) );
P>recordSet.CreateInstance(__uuidof(Recordset)); 
connection->>CursorLocation = adUseServer;
connection->>Open(
P>       "DRIVER {SQL SERVER};SERVER=SRV1;UID=user1;PWD=pwd1;BASE=base1",
P>       L"", L"", adConnectUnspecified );
recordSet=connection->>Execute(
P>       "INSERT table1 (fld1) VALUES ('val1') select @@IDENTITY",
P>       NULL,adCmdText);
P>


P>Этот же запрос в Query Analyzer проходит на ура.

Поробуй нечто подобное:

// isert new row to Lists table
ADO::_RecordsetPtr rsetPtr;
TESTHR( rsetPtr.CreateInstance(__uuidof(ADO::Recordset)) );
TESTHR( rsetPtr->Open(L"Lists", 
        _variant_t((IDispatch *)m_adoConnPtr,true), 
        ADO::adOpenStatic, 
        ADO::adLockOptimistic, 
        ADO::adCmdTable) );    // open recordset for table
TESTHR( rsetPtr->AddNew() );            // add new row
rsetPtr->Fields->Item[L"list_type_id"]->Value = listType;// set value for 'list_type_id' field
TESTHR( rsetPtr->Update() );            // update dtabase

_variant_t variant = rsetPtr->Fields->Item[L"list_guid"]->Value;    // get GUID of new List
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.