function TFormB_Subject.CreSubJect(PN: TTreeNode;parentid:string):string;
var
CN:TTreeNode;
dataset:TADODataSet;
begin
dataset:=TADODataSet.Create(nil);
dataset.Connection:=dm.cn;
dataset.Close;
dataset.CommandText:=' select SubjectId,Subject, IsSub, parentId '+
' from B_Subject '+
' where parentid='+QuotedStr(parentid);
dataset.Open;
dataset.First;
while not dataset.Eof do
begin
cn:=tv_type.Items.AddChild(PN,dataset.fieldbyname('subjectid').AsString+'-'+dataset.fieldbyname('subject').AsString);
if not dataset.fieldbyname('issub').AsBoolean then
CreSubJect(cn,dataset.fieldbyname('parentid').AsString);
dataset.Next;
end;
dataset.Close;
dataset.Free;
dataset:=nil;
end;没报错。但运行时死机啦。
不知道语法错在哪里。
var
CN:TTreeNode;
dataset:TADODataSet;
begin
dataset:=TADODataSet.Create(nil);
dataset.Connection:=dm.cn;
dataset.Close;
dataset.CommandText:=' select SubjectId,Subject, IsSub, parentId '+
' from B_Subject '+
' where parentid='+QuotedStr(parentid);
dataset.Open;
dataset.First;
while not dataset.Eof do
begin
cn:=tv_type.Items.AddChild(PN,dataset.fieldbyname('subjectid').AsString+'-'+dataset.fieldbyname('subject').AsString);
if not dataset.fieldbyname('issub').AsBoolean then
CreSubJect(cn,dataset.fieldbyname('parentid').AsString);
dataset.Next;
end;
dataset.Close;
dataset.Free;
dataset:=nil;
end;没报错。但运行时死机啦。
不知道语法错在哪里。
解决方案 »
- 请教一个编程逻辑问题!
- 怎么把字符串转换为JPG格式的图片.
- 播放wav文件显示图形的问题, 文件很大为啥WaveOutProc调用很少?
- 100分相送求winxp与win2000在安装vss后不能互访问题
- 如何获得WinRAR的返回值?
- 怎么样在Delphi程序中增加代码,使用程序自己启动后自己删除自己
- 文件操作的问题,请各位大虾指点迷经!
- 如何判断一个文件句柄是打开?
- 怎么做出象delphi安装完毕就有DBDEMOS数据库别名的效果?
- 急!!!请问各位大哥大姐,RAS拨号是否挂断就等于关闭端口啊?提示‘端口已打开’时,我是不是挂断就可以了?
- 如何像系统一样监视网络连接状态!高手请进!
- 有用过TMS组件中TPlanner控件得吗?
CreSubJect(cn,dataset.fieldbyname('parentid').AsString); //这边好像有问题..没具体测试.假设你第一次调用时该传递的值为 2007 ,那到执行上面这一句时,查询出来的结果还是跟第一次查询的结果是一样的.因为该值没有改变,还是2007 ........要看你的表结构是如何的...才能具体写出相应的代码~~嘿嘿~
CreSubJect(cn,dataset.fieldbyname('parentid').AsString);
感觉应该写为:
if dataset.fieldbyname('issub').AsBoolean then
CreSubJect(cn,dataset.fieldbyname('SubjectId').AsString);