我用VC 6.0的MFC AppWizard(exe)生成支持数据库oledb的程序(没有插入任何用户添加的语句),主要数据库用户口令修改,程序退出事一定会有个写保护错,这到底是什么原因。class CMy3Set : public CCommand<CAccessor<CUsingComputer> >
{
public: HRESULT Open()
{
CDataSource db;
CSession session;
HRESULT hr; CDBPropSet dbinit(DBPROPSET_DBINIT);
dbinit.AddProperty(DBPROP_AUTH_PASSWORD, "123456");
dbinit.AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, true);
dbinit.AddProperty(DBPROP_AUTH_USERID, "abc");
dbinit.AddProperty(DBPROP_INIT_CATALOG,  "database");
dbinit.AddProperty(DBPROP_INIT_DATASOURCE, "192.10.13.215");
dbinit.AddProperty(DBPROP_INIT_LCID, (long)2052);
dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4); hr = db.OpenWithServiceComponents("SQLOLEDB.1", &dbinit);
if (FAILED(hr))
return hr; hr = session.Open(db);
if (FAILED(hr))
return hr; CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_CANFETCHBACKWARDS, true);
propset.AddProperty(DBPROP_IRowsetScroll, true);
propset.AddProperty(DBPROP_IRowsetChange, true);
propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE ); hr = CCommand<CAccessor<CUsingComputer> >::Open(session, "SELECT * FROM dbo.UsingComputer", &propset);
if (FAILED(hr))
return hr; return MoveNext();
}};以上在正常情况下是没有问题的,但只要有出错的地方,就会产生上述错误,真是忧闷!