Data/Type 在 EA 中按名称获取包时不匹配
Data/Type mismatch when getting Package by Name in EA
我正在为 EA 编写扩展程序,并且在创建底层包时以编程方式创建了一些包和组件,我将 protected 属性 设置为 true。后来我写了一个查询来获取这个包但是我得到 Date/Type 不匹配错误
创建包代码
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;
}
当我 运行 查询时,我得到 Data/Type 不匹配错误 我在访问中检查了受保护列的数据类型,它是 YES/NO
有人知道吗?
谢谢
您的查询在布尔值周围有撇号,导致它被解释为字符串。
... "' AND Protected = '" + isBottomLevel + "' ";
应该是
... "' AND Protected = " + isBottomLevel;
我正在为 EA 编写扩展程序,并且在创建底层包时以编程方式创建了一些包和组件,我将 protected 属性 设置为 true。后来我写了一个查询来获取这个包但是我得到 Date/Type 不匹配错误
创建包代码
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;
}
当我 运行 查询时,我得到 Data/Type 不匹配错误 我在访问中检查了受保护列的数据类型,它是 YES/NO
有人知道吗?
谢谢
您的查询在布尔值周围有撇号,导致它被解释为字符串。
... "' AND Protected = '" + isBottomLevel + "' ";
应该是
... "' AND Protected = " + isBottomLevel;