首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

用CB创建ACCESS数据库后MSysObjects的权限有关问题

2012-10-18 
用CB创建ACCESS数据库后MSysObjects的权限问题现在用CB动态创建一个ACCESS数据库并对新建的数据库用程序添

用CB创建ACCESS数据库后MSysObjects的权限问题
现在用CB动态创建一个ACCESS数据库并对新建的数据库用程序添加表

在后期的应用中要对MSysObjects访问获得表名

C/C++ code
SELECT NAME FROM MSysObjects WHERE TYPE=1


现在发现用CB创建出来的ACCESS数据库中ADMIN用户对MSysObjects表没有权限,导致无法访问,每次只能手工到ACCESS库中对管理员用户设置MSysObjects所有权限,这样对最终用户来说非常不方便

创建数据库的代码如下:

C/C++ code
    OleInitialize(NULL);    Variant vCreateAccess;    Procedure PCreateAccess("Create");    PCreateAccess << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DBName + ".mdb";    vCreateAccess = CreateOleObject("ADOX.Catalog");    vCreateAccess.Exec(PCreateAccess );    OleUninitialize()


请教有经验的朋友,如果解决创建后的ACCESS数据库对MSysObjects权限问题

[解决办法]
这样试试:
C/C++ code
vCreateAccess.Exec(PCreateAccess);vCreateAccess.OlePropertyGet("Users", "Admin").OleFunction("SetPermissions",         "MSysObjects ",        1, // adPermObjTable,        2, // adAccessSet,        0x10000000L        );OleUninitialize(); 

热点排行