关于Treeview跟数据库的问题!(100分)

  • 主题发起人 主题发起人 yuanying
  • 开始时间 开始时间
Y

yuanying

Unregistered / Unconfirmed
GUEST, unregistred user!
在Treeview的click事件中,我加入了如下语句:
begin
edit1.text:=Treeview1.selected.text;
table1.indexfieldnames:='name';
table1.setkey;
table1.fieldbyname('Name').value:=edit1.text;
if not table1.gotokey then
table1.gotonearest;
end;

以上方法总是出错!请问这是为何?有什么好办法可以通过点击某一节点来获取数据库中的
相应内容。数据库的结构如下:
111
aaa
bbb
AAA
BBB
222
aaa
ccc
DDD
EEE
AAA
333
AAA
 
begin
edit1.text:=Treeview1.selected.text;
Table1.Locate('Name',VarArrayOf([Edit1.Text]),[loCaseInsensitive, loPartialKey]);
...

end;

 
对于delphi中的数据敏感,delphi中没有相关的数据敏感控件,其实你完全可以自己写一个
与数据库相关的数据敏感方法或过程,通过传递
/TV控件名/DATASET/DATAVALUEFIELD/DISPLAYVALUEFIELD这四个参数就可以实现一个通用
的数据敏感数据敏感.
 
我是这样解决的放两个DBEDIT,将人的DATASOURCE的属性指向Table的DataSource上然后在
TreeView的CLICK属性上写TABLE的搜索语句就可以了,主键用NAME就OK了
我是用ADO控件的搜索用ADO.locate(......)。这样,DBEDIT的内容,会随着你的TABLE
指针在变了明白了吗?你可以这样实现的。
我用这个方法自己写了一个跟TREEVIEW连结的树结构用于财务的科目树。挺好用的如果有
问题可以再讨论!
 
我初学不久,能否给我个示例,或E-Mail给我源码。cinet@163.com
 
此处高手如云,还请大家多多帮忙!!
 
在click事件中写:
var s,s_parent:string;
begin
s:=treeview1.selected.text;
s_parent:=treeview1.selected.parent.text;//以此类推
........//以上面的变量作条件 ,可查得所需数据[:)][:)]
end;
 
但这里有三个AAA,在Treeview中名字是一样的,但要单击其中任一个能进入
各自不同的相应数据。用上面的方法是不行的!
 
用Query控件。。
edit1.text:=Treeview1.selected.text;
query1.SQL.Clear;
query1.SQL.Add('select * from table where name = ' + '''' + edit1.text + '''');
query1.open
 
主键是哪个?最好把你的表结构粘上来
 
用Query控件也不行,我的目的不是要一次性显示多条记录,而是要能分别显示"Name"值相
同,而其他("age,sex,bak")字段值不同的记录。
 
可以用第三方控件,但不于自己开发一个,不过要分清主枝、子枝、叶子地主从关系。
那些叶子属于那些子枝,那些子枝属于那些主枝,你可能没分清这个关系,最好专用
一个字段指示这个关系,比喻:
你的树记录 关系字段值 ID
aa(主枝) 1000
AA1(子枝) 1000
AA2(子枝) 1000
bb(主枝) 1001
BB1(子枝) 1001
BB2(子枝) 1001

把主枝地ID字段值赋给子值的关系字段值,就很清楚了,很明显,AA1,AA2 属于aa
BB1, BB2 属于bb


 
我已给你E-Mail.
 
接受答案了.
 
不服!!抗议!
 

Similar threads

S
回复
0
查看
758
SUNSTONE的Delphi笔记
S
S
回复
0
查看
751
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部