我必须在现有表中添加新列。我可以成功地添加新列,但是在将列属性修改为nullable时会出现以下异常。
多步OLE DB操作生成错误.如果可用,请检查每个OLE DB状态值。没有做任何工作,
这是我的密码,
HRESULT hr = S_OK;
ADOX::_CatalogPtr pCatalog = NULL;
ADOX::_TablePtr pTable = NULL;
ADOX::TablesPtr pTables = NULL;
hr = pCatalog.CreateInstance(__uuidof(Catalog));
pCatalog->PutActiveConnection("Provider='Microsoft.JET.OLEDB.4.0';data source='C:\\sample.mdb';");
pTables = pCatalog->GetTables();
pTable = pTables->Item["sampletable"];
hr = pTable->Columns->Append( "age", ADOX::adInteger, 0);
ASSERT(hr == S_OK);
pTable->Columns->Item["age"]->Attributes = ADOX::adColNullable;发布于 2009-07-13 23:34:28
VBA中的等效代码为我工作,没有错误(假设我忠实地翻译了它)。
可能要尝试的是创建一个列对象,设置它的属性(包括NULLable ),然后将其附加到表对象的列集合中,例如在VBA中:
Set oColumn = New ADOX.Column
oColumn.Name = "age"
oColumn.Type = ADOX.adInteger
oColumn.Attributes = ADOX.adColNullable
oTable.Columns.Append oColumnhttps://stackoverflow.com/questions/1105346
复制相似问题