1、我按照你的办法新增主键(在表还没有建立主键的情况下),运行正常,代码如下:
var
Cat, aKey: Variant;
begin
Cat := CreateOleObject('ADOX.Catalog');
aKey := CreateOleObject('ADOX.Key');
Cat.ActiveConnection := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Z:/study/mytest/综合/mytest.mdb;';
aKey.Name := 'TestKey';
// aKey.Type :=adKeyPrimary;
aKey.Columns.Append('IDA');
aKey.Columns.Append('IDB');
aKey.Columns.Append('IDC');
cat.Tables['test'].Keys.Append(aKey);
end;
2、但删除主键(表已经通过上面的方法建立主键后),运行失败,
报错提示为:OLE error 800A0CC1
代码如下:
var
Cat, aKey: Variant;
begin
Cat := CreateOleObject('ADOX.Catalog');
aKey := CreateOleObject('ADOX.Key');
Cat.ActiveConnection := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Z:/study/mytest/综合/mytest.mdb;';
aKey.Name := 'TestKey';
// aKey.Type :=adKeyPrimary;
aKey.Columns.Append('IDA');
aKey.Columns.Append('IDB');
aKey.Columns.Append('IDC');
cat.Tables['test'].Keys.delete(aKey);
end;
敬请指点,非常感谢!!!