此代码为直接操作Windchill的ORACLE数据库的C# 代码,当然可以根据需要换成别的语言,毕竟重要的是那条SQL语句
/// <summary>
/// MPMLink中通过,通过产品号和MBOM版本查询对应的EBOM版本(对等部件)
/// </summary>
/// <param name="pronum">零件编号</param>
/// <param name="MBOMVer">MBOM版本如(B.B.2)</param>
/// <returns>EBOM版本</returns>
public string GetEBOMVersion(string pronum,string MBOMVer)
{ //制造版本需要大版本和小版本拆分下 例如MBOM:B.B.2
string Bversion = MBOMVer.Substring(0, 3); // B.B
string Sversion = MBOMVer.Substring(MBOMVer.LastIndexOf(".")+1);// 2
BLL.connectOracle bll = new BLL.connectOracle();
DataSet ds = bll.ExOracle("select * from (select wtm.wtpartnumber, wtp.versionida2versioninfo || '.' || wtp.iterationida2iterationinfo as version from wtpart wtp, wtpartmaster wtm where wtp.ida2a2 in ( select mpml.ida3a5 from wtpart wt,wtpartmaster wtm,mpmequivalencelink mpml where wtm.ida2a2 = wt.ida3masterreference and wt.versionida2versioninfo='" + Bversion + "' and wt.iterationida2iterationinfo='" + Sversion + "' and wtm.wtpartnumber='" + pronum + "' and wt.ida2a2=mpml.ida3b5 ) and wtm.ida2a2 = wtp.ida3masterreference order by wtp.modifystampa2 desc)where rownum=1");
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0]["VERSION"].ToString().Substring(0,1);
}
else {
return null;
}
}