首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问一个DataModule的有关问题

2013-07-01 
请教一个DataModule的问题。DataModule是一个数据库控件存放的模块是不是?DataModule存放了控件后是不是有

请教一个DataModule的问题。
DataModule是一个数据库控件存放的模块是不是?
DataModule存放了控件后是不是有一个固定的模式使用,怎么使用?

例子:
DataModule放了TADOConnection,ConnectionString已经填写了好了,
在另外一个窗体调用它又不行,一定要调用的那个窗体本身上放TADOConnection才行。

procedure TMainForm.FillTreeView(TreeView:TTreeView);
  procedure CreateSubTree(FNodeName: string; Node: TTreeNode = nil);
  var
    mLocalName: string;
    TreeNode: TTreeNode;
    Ads_Tmp: TADODataSet;

  begin

    Ads_Tmp:=TADODataSet.Create(nil);

    Ads_Tmp.Connection:=dtmdl1.con1;
    Ads_Tmp.Connection:=con1;
   这里使用上面的不行,
   使用Ads_Tmp.Connection:=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;

[解决办法]
implementation下面加上:
uses
  DMUnit;//换成你的DataModule单元名。
在Project->Options中确认该DataModule是自动创建的。

事实上,DataModule不只可以放Data组件,我通常把所有不可视的、非动态创建的、被多个窗体使用的组件都放到DataModule中,比如ActionList。


[解决办法]
DataModule就是个普通的不能在普通的东西,你把connection,query等都可以放到上面,当然其他的 也可以,其他窗体引用 DataModule的单元,就可以访问其中的组件,其实自己写各类,管理数据组件也是一样的
[解决办法]
放不可视控件用的....

热点排行