Delphi使用TMD
procedure Tdtmdl1.DataMod(Sender:TObject);
begin
if con1.Connected then
con1.Close;
con1.ConnectionString:='Provider=SQLOLEDB.1;Password=kji@jiaj;'+
'Persist Security Info=True;User ID=kji;'+
'Initial Catalog=HC_kji;Data Source=192.168.1.6\MAC_INSTANCE;'+
'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;'+
'Workstation ID=PC2013061008WRV;Use Encryption for Data=False;'+
'Tag with column collation when possible=False';
con1.Open;
end;
TMD代码
procedure TMainForm.FillTreeView(TreeView:TTreeView);
procedure CreateSubTree(FNodeName: string; Node: TTreeNode = nil);
var
mLocalName: string;
TreeNode: TTreeNode;
Ads_Tmp: TADODataSet;
begin
Ads_Tmp:=dtmdl1.ds1.Create(nil);//到这里运行就会报错,是什么原因?
Ads_Tmp.Connection := dtmdl1.con1;
with ADS_Tmp do
try
Close;
CommandText := 'Select * from Dir Where PID =' + FNodeName;
Open;
First;
while not Eof do
begin
mLocalName := FieldbyName('ID').Asstring;
TreeNode := TreeView.Items.AddChild(Node, FieldByName('Caption').AsString);
CreateSubTree(mLocalName, TreeNode); // 此处循环递归
Next;
end;
finally
ADS_Tmp.Free;
end;
end;
begin
TreeView.Items.BeginUpdate;
TreeView.Items.Clear;
with TreeView.Items.Add(nil, '所有目录') do
begin
ImageIndex := 1;
SelectedIndex := 1;
end;
CreateSubTree('0', TreeView.Items[0]);
TreeView.Items.EndUpdate;
//TreeView.Items[1].Selected := True; //展开部门
end;
使用代码
[解决办法]
跟踪吧,先确定在哪步出错
[解决办法]
Ads_Tmp:=TADODataSet.Create(nil);
[解决办法]
Ads_Tmp.Connection := dtmdl1.con1;
这个是没问题的。
[解决办法]
我记得 Ads_Tmp:=TADODataSet.Create(nil); 这里不能传nil要传一个 对象吧!