在EA中按名称获取包时,数据/类型不匹配

本文关键字:数据 类型 不匹配 包时 获取 EA | 更新日期: 2023-09-27 18:15:10

我正在为EA编写扩展,当我创建底层包时,我将protected属性设置为true,我以编程方式创建了一些包和组件。后来我写了一个查询来获取这个包,但我得到日期/类型不匹配错误

创建包代码

 EA.Package  bpackage = parent.Packages.AddNew(packageComponentName, ELEMENT_TYPE_PACKAGE);
 bpackage.IsProtected = true;
 bpackage.Update();
 parent.Packages.Refresh();
 rep.RefreshModelView(parent.PackageID);

SQL查询获取此包

  private static Boolean isBottomLevel = true; 
  public static Package getBottomLevelPackage(Repository rep, String name)
  {
        string sqlQuery = "SELECT ea_guid FROM t_package WHERE Name = '" + name + "' AND Protected = '" + isBottomLevel + "' ";
        XmlDocument xmd = runQuery(rep, sqlQuery);
        XmlNode idNode = xmd.SelectSingleNode("//ea_guid");
        return idNode != null ? rep.GetPackageByGuid(idNode.InnerText) : null;
  } 

当我运行查询时,我得到数据/类型不匹配错误,我检查了访问中受保护列的数据类型,它是YES/NO

有人知道吗?

谢谢

在EA中按名称获取包时,数据/类型不匹配

您的查询在布尔值周围有撇号,导致它被解释为字符串。

... "' AND Protected = '" + isBottomLevel + "' ";
应该

... "' AND Protected = " + isBottomLevel;