使用ADOX修改列属性[vc ++和MS Access]

时间:2009-07-09 17:25:43

标签: ms-access visual-c++

我必须在现有表中添加新列。我能够成功添加新列,但在将列属性修改为可为空时绑定时发生异常。

多步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;

1 个答案:

答案 0 :(得分:0)

VBA中的等效代码对我没有错误(假设我已经忠实地翻译了它)。

可能要尝试的是创建一个Column对象,设置其属性包括NULLable,然后将其附加到Table对象的Columns集合,例如这在VBA:

Set oColumn = New ADOX.Column
oColumn.Name = "age"
oColumn.Type = ADOX.adInteger
oColumn.Attributes = ADOX.adColNullable
oTable.Columns.Append oColumn