首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ADOX [ vc++和MS Access]修改列属性

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

Stack Overflow用户
提问于 2009-07-09 17:25:43
回答 1查看 1.1K关注 0票数 0

我必须在现有表中添加新列。我可以成功地添加新列,但是在将列属性修改为nullable时会出现以下异常。

多步OLE DB操作生成错误.如果可用,请检查每个OLE DB状态值。没有做任何工作,

这是我的密码,

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

发布于 2009-07-13 23:34:28

VBA中的等效代码为我工作,没有错误(假设我忠实地翻译了它)。

可能要尝试的是创建一个列对象,设置它的属性(包括NULLable ),然后将其附加到表对象的列集合中,例如在VBA中:

代码语言:javascript
复制
Set oColumn = New ADOX.Column
oColumn.Name = "age"
oColumn.Type = ADOX.adInteger
oColumn.Attributes = ADOX.adColNullable
oTable.Columns.Append oColumn
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1105346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档