SELECT * FROM extend_bom2(118,1)
这句sql是什么意思呢?就是from后面的这个'extend_bom2(118,1)'如何理解?在数据库中没有extend_bom2这个表;而且运行这句到sql里面的时候,118为其中一个表字段(item_id)的值.
备注:这个语句是在delphi中: procedure TF_mtl_showbom.show_bom;
begin
if Edit2.Text = '' then
Edit2.Text := '1';
ChangeSql('select item_id, item_number, bom_re, eng_bom_flag, item_type,'+
' item_status, description from eng_bom_h_v where item_number = '
+ #39 + Edit1.Text + #39, ADOItem);
if ADOItem.RecordCount > 0 then
ChangeSql('SELECT * FROM extend_bom2(' + ADOItemItem_id.AsString + ',' + Edit2.Text +')', ADOBom)
else
begin
showError('此物料不存在');
ADOBom.Close;
Edit1.OnButtonClick(nil, -1);
edit1.SelectAll;
end;
看别人的代码,第一次遇见这样的sql语句.虚心询问前辈们如何理解这个sql语句.
这句sql是什么意思呢?就是from后面的这个'extend_bom2(118,1)'如何理解?在数据库中没有extend_bom2这个表;而且运行这句到sql里面的时候,118为其中一个表字段(item_id)的值.
备注:这个语句是在delphi中: procedure TF_mtl_showbom.show_bom;
begin
if Edit2.Text = '' then
Edit2.Text := '1';
ChangeSql('select item_id, item_number, bom_re, eng_bom_flag, item_type,'+
' item_status, description from eng_bom_h_v where item_number = '
+ #39 + Edit1.Text + #39, ADOItem);
if ADOItem.RecordCount > 0 then
ChangeSql('SELECT * FROM extend_bom2(' + ADOItemItem_id.AsString + ',' + Edit2.Text +')', ADOBom)
else
begin
showError('此物料不存在');
ADOBom.Close;
Edit1.OnButtonClick(nil, -1);
edit1.SelectAll;
end;
看别人的代码,第一次遇见这样的sql语句.虚心询问前辈们如何理解这个sql语句.
但是sql没有这个函数哦.还有我在delphi代码里面搜索也没有...
恩.我是在数据库里面执行后.如果把(118,1)去掉.则提示找不到表..如果加上这个后.就会找到item_id=118的数据出来.
在数据库执行界面里,试试按住ctrl,然后用mouse点击 extend_bom2
extend_bom2从字面上看应该是个展BOM表的过程或者函数,是不是Oralce数据库的,你直接到数据找一下这个东西是什么,select * from all_objects where object_name = 'EXTEND_BOM2'.
我觉得这句是错误的.
但是程序没有问题呀..而且这个句话到mssql里面运行是有数据出来的.我也纳闷了....依葫芦画瓢..总是疙瘩...
好久不用mssql了,应当在系统表/视图中能看这个个extend_bom2的信息
.
在查询分析器中sp_helptext extend_bom2 可以看到它的代码
select item_id, item_number, bom_re, eng_bom_flag, item_type, item_status, description
from eng_bom_h_v where item_number ='CPL-5053-31AA'
SELECT * FROM extend_bom2(102,1)
sql语句如此.好像内容不相关一样.我汗....难道我哪里理解错误了..