各位帮忙用delphi或sqlserver做一个递归展程序!如产品bom树展开!谢谢!
解决方案 »
- Unsatisfied forward or external declaration: 'TEnter_Form.Exit_BtnClick'求高手
- 天才!百年一遇!在盒子上見到的!
- 想在县城开个童装店,帮忙取个店名,谢谢!!!
- 关于numericedit的问题
- 请问exit和close指什么含义
- 如何在Delphi中获得存储过程的返回变量值?
- @@@@@Label怎么能成竖着的?@@@@@
- 请问:delphi连接Access数据库,用table.recno显示当前记录为何一直是负数?
- 求救!带有dhtmledit控件的执行程序无法在ie4下运行,如何发布?
- 光盘目录/文件的直接读取
- 关于调用DLL文件的问题,请大家过来看一看!
- 关于FASTREPORT动态制作报表时的数值表示问题
基于MS SQL SERVER 的表结构如下:
IF EXISTS(SELECT 1 FROM sysobjects WHERE name = 'BOM_Table' AND Type = 'U') DROP TABLE BOM_Table
GO
CREATE TABLE BOM_Table(
PNo VARCHAR(20) NOT NULL CHECK(PNo <> ''), /*主件编号*/
CNo VARCHAR(20) NOT NULL CHECK(CNo <> ''), /*元件编号*/
CONSTRAINT PK_BOM PRIMARY KEY COLUSTERED(PNo,CNo),
QtyPer DECIMAL(18,6) NOT NULL CHECK(QtyPer >=0) DEFAULT 0, /*用量*/......)
GO
GRANT ALL ON BOM_TABLE TO PUBLIC
GO
function ExpandBom(ADOConnection:TADOConnection;PNo:String);
const
SQL_STR :String='SELECT CNo AS No,QtyPer FROM BOM_Table WHERE PNo = ''%s''';begin
with TADOQuery.Create(nil) do
try
Connection := ADOConnection;
CacheSize := 1000;
LockType := ltReadOnly;
SQL.Text := Format(SQL_STR,[PNo]);
Open();
First();
While not eof do
begin
{ ...... on do ...... }
ExpandBom(ADOConnection,FieldByName('No').AsString);
Next();
end;
finally
if Active then Close();
Free;
end;
end;