起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 137|回复: 8

【结贴】[请求]一个信息层被多个功能引用**

[复制链接]
发表于 2008-6-24 23:20:47 | 显示全部楼层 |阅读模式
我现在有个一个信息层被多个功能引用,而不同的功能入口需要信息层上的数据集动态改变连接的数据库。
现在我知道在信息层的infocreat事件上可以写改变数据库的代码,现在的问题是,如何根据功能的不同,来判断连哪个数据库?
也就是 我打开功能的时候同时创建引用的信息层,如何根据入口的不同,信息层上的数据集动态改变连接的数据库?
回复

使用道具 举报

发表于 2008-6-25 08:38:09 | 显示全部楼层
那可以把信息层的数据集都不设数据库,或者默认是关闭状态。
在功能的主窗体上的create事件中,通过数据集代理控制信息层的数据集指向
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-25 09:52:55 | 显示全部楼层
可以在信息层的oncreat时,感知到是不同的功能来创建它吗?
如果通过数据代理的方法,我现在有20多个数据集,在功能层上主窗体create事件中写代码,那我需要增加20多个数据集代理么?
能不能给我个通过数据集代理控制信息层的数据集指向的代码
回复 支持 反对

使用道具 举报

发表于 2008-6-25 10:04:25 | 显示全部楼层
信息是被引用的,所以他不知道哪个功能创建的。
楼主不如多做几个信息更方便,而且不用代码控制,只是赋值几个信息,修改下信息id和数据集的指向
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-25 10:12:32 | 显示全部楼层

[宣传]

我也想多建几个信息层,但是这个信息层下有50多个fom.doc或者sheet.doc,要是信息改了一点,那每个功能的信息都得更改,这样也很麻烦。
对了,能不能提供下通过数据集代理控制信息层的数据集连接数据库的代码?
回复 支持 反对

使用道具 举报

发表于 2008-6-25 10:21:24 | 显示全部楼层
您先看下是否有可行性。数据集改变了数据库,表也不一样,表单和表格是否能正常显示呢?
主,问题解决了吗?如果没有解决的话,你参考这样子用一下
procedure TMAINFORM.Button2Click(Sender: TObject);
var
  lsqldataset: TSQLDataSet;
  ldatasource : TDataSource;
begin
  lsqldataset := TSQLDataSet.Create(Self);
  ldatasource := TDataSource.Create(Self);
  lsqldataset.Database.URL := 'Biz:\PXYS_LX_\SJK.DATABASE';
  with lsqldataset do
  begin
    lsqldataset.Close;
    lsqldataset.SQL.Text := 'Select * from A';
    lsqldataset.Open;
    ldatasource.DataSet := TSQLDataSet(lsqldataset);
    DataEdit1.DataSource := ldatasource;
    DataEdit1.DataField := 'SPBH';
  end;
end;
你的数据集如果是已存在的,就可以不用创建语句了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-25 10:54:58 | 显示全部楼层
我在两个数据库中的建的表的结构是完全一样的,我试过了表单和表格可以正常显示
回复 支持 反对

使用道具 举报

发表于 2008-6-25 11:28:04 | 显示全部楼层
procedure TYWXX6.InfoCreate(Sender: TObject);
begin
    dialogs.ShowMessage(self.Context.Parent.Owner.Name);
end;

可以找到功能。注意::信息的隔离级必须是未定义或者功能。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-25 15:59:04 | 显示全部楼层
太谢谢了,我要的就是这个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 12:29 , Processed in 0.040411 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表