我编写了一个数据库应用程序,可以将excel文件中的数据导入Access数据库.
我从来没有遇到过运行应用程序,将记录插入数据库的麻烦,但是只要我运行将数据从Excel导入Access的功能,我就会收到以下警告:
请求的操作需要提升 – 通过芯片代码:
LAccess := CreateOleObject('Access.Application');
造成这种情况的原因是什么,有办法绕过它
解决方法
CreateOleObject
delphi函数在内部调用需要提升的
CoCreateInstance WinApi方法.你有几个选择来处理这个问题.
1)向您的应用添加清单,包括requested execution level requireAdministrator.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="Your app name goes here" processorArchitecture="x86" version="5.1.0.0" type="win32"/> <description>your app description goes here</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
2)您可以启动升级的辅助进程来执行任务或创建运行提升的COM对象,您可以在这些MSDN条目中找到更多信息