首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向msi表插入值

如何向msi表插入值
EN

Stack Overflow用户
提问于 2012-02-12 12:24:06
回答 1查看 1.8K关注 0票数 3

我正在使用Wix来监听应用程序和服务,我希望更改msi表(session.database)中的值。

我尝试使用自定义操作来完成此操作,我可以使用select语句从表中选择值,但是如果我尝试插入,设置将失败。

我的代码:

代码语言:javascript
复制
 [CustomAction]
 public static ActionResult MyCustomAction1(Session session)
 {
     ServiceController serviceController = new ServiceController(serviceName);

     //-----Works fine-----
     res=session.Database.ExecuteIntegerQuery("select ServiceType from ServiceInstall where StartType=4");

     //----Makes the setup fail
     session.Database.Execute("insert into ServiceInstall (ServiceInstall) values ('a')");       
     return ActionResult.Success;
  }

是否可以使用自定义操作插入值?

谢谢

谢谢你‘我已经尝试过了:session.Database.Execute(“插入到ServiceInstall (名称)值('ezm')临时”);

但我得到了后续异常: exception:函数在执行过程中失败。数据库:表更新失败。

EN

回答 1

Stack Overflow用户

发布于 2012-02-12 19:41:21

只能在安装时将临时数据插入MSI数据库。这里有一个特殊的语法- INSERT INTO {table} ({column-list}) VALUES ({constant-list}) [TEMPORARY]。注意最后一个词--尽管它是可选的,但如果您试图插入来自自定义操作的数据,则必须存在它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9248727

复制
相关文章

相似问题

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