在如下三个表要在treview里显示一颗树....系/专业/班级 怎么写呀.....谢谢 /*系部表:包含学校所设系的相关资料*/
create table xbb
(
xbbh char(6) primary key, --系部编号
xbmc char(20) not null, --系部名称
xzr char(10) not null --系主任名字
)/*专业表:包含学校所设专业*/
create table zyb
(
zybh char(6) primary key, --专业编号
zymc char(30) unique, --专业名称
ssxb char(6) foreign key references xbb(xbbh) --所属系别
)
/*班级表:包含学校所设班级以及该班级所属系部*/
create table bjb
(
bjbh char(6) primary key, --班级编号
bjmc char(20) not null, --班级名称
zybh char(6) foreign key references zyb(zybh),
szxbh char(6) foreign key references xbb(xbbh) --所属系部编号 作为外键引用系部表中的系部编号
)
create table xbb
(
xbbh char(6) primary key, --系部编号
xbmc char(20) not null, --系部名称
xzr char(10) not null --系主任名字
)/*专业表:包含学校所设专业*/
create table zyb
(
zybh char(6) primary key, --专业编号
zymc char(30) unique, --专业名称
ssxb char(6) foreign key references xbb(xbbh) --所属系别
)
/*班级表:包含学校所设班级以及该班级所属系部*/
create table bjb
(
bjbh char(6) primary key, --班级编号
bjmc char(20) not null, --班级名称
zybh char(6) foreign key references zyb(zybh),
szxbh char(6) foreign key references xbb(xbbh) --所属系部编号 作为外键引用系部表中的系部编号
)
解决方案 »
- 除了设dmz主机,还有别的方法在局网内做服务器吗
- delphi中如何将DBgrid中显示的从SQL sever数据库中查询到的数据导入EXCEL(可以导入到TXT文本中吗 ?)中
- 能不能用api函数在窗体上画图?
- 将多个控件组合为一个控件时出现的问题!
- 怎样读出listview中鼠标选中的item中的各个column的值。
- 这一段代码有何错误
- Bom节点的展开问题
- indy 9装不了怎么办啊?
- 关于excel数据的导入和导出
- 那里有delphi的安装程序下载?(无内容)
- Dbnavigator控件删除记录时的提示怎样改成中文的?
- 关于计时器的问题,为何总时间大于设计的时间呢?菜鸟请教!在线等.........................
2张表:
客户表(Tbl_Client):
client_id(自增) client_name type_id
1 小江 3
2 小李 4客户类型表(Tbl_Client_Type):
type_id(自增) type_name parent_id(父类型)
1 国内 -1
2 国外 -1
3 北京 1
4 上海 1现在在DELPHI里放一个树形控件(treeview1) 要求把客户类型表里的数据加到treeview1中 象下面:
-- 客户资料
--国内
--北京
--上海
--国外
要求:写一个递归调用函数 把客户类型表里的数据加到treeview1中procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'select type_id,type_name,parent_id from Tbl_Client_Type order by parent_id';
ADOQuery1.Open;
InitTreeView;
end;procedure TForm1.InitTreeView;
procedure AddChildrenNode(pnode: TTreeNode);
var
i: Integer;
_node: TTreeNode;
begin
//Set the Filter Condition
ADOQuery1.Filtered := false;
ADOQuery1.Filter := 'parent_id=' + IntToStr(pnode.OverlayIndex);
ADOQuery1.Filtered := true; ADOQuery1.First; //Restore the rs-index
//Add the Record to the ParentNode
for i := 0 to ADOQuery1.RecordCount - 1 do
begin
_node := TreeView1.Items.AddChild(pnode, ADOQuery1.FieldByName('type_name').AsString);
_node.OverlayIndex := ADOQuery1.FieldByName('type_id').AsInteger;
ADOQuery1.Next;
end;
//recursion
for i := 0 to pnode.Count - 1 do
AddChildrenNode(pnode.Item[i]);
end;
var
_topNode: TTreeNode;
begin
TreeView1.Items.BeginUpdate;
//---add the top parent node
_topNode := TreeView1.Items.AddChild(nil,'TopNodeAddByXinhs');
_topNode.OverlayIndex := -1; //The casual ward for ParentID
//end add
AddChildrenNode(_topNode);
TreeView1.Items.EndUpdate;
_topNode.Selected := True;
end;