起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1523|回复: 28

【搞定】关于数据集是否释放的问题!!!**

[复制链接]
发表于 2007-1-22 15:34:24 | 显示全部楼层 |阅读模式
目前我们遇到的问题是这样的:
我们建立了一个引用数据库表的功能(在数据表中有数据的前提下),另外单独建立了一个独立的空白窗体的功能,在上面做了一个 "添加" 按钮,弹出刚才创建的功能窗体,然后选择窗体上的记录,比如说定位到非第一条的记录上,点击确定按钮,而当我们再次点击
“添加”按钮第二次弹出添加窗体时,当前的记录却定位到了第一次调用时点击的记录位置而不是重新定位到第一条记录,请问这是什么原因呢?
我的代码是这样写的:(在空白窗体上添加了一个名为“添加”的按钮的OnClick事件)
procedure TMainForm.btnAddClick(Sender: TObject);
var
  lForm: TFRM_Main;
begin
  lForm := TFRM_Main.Create(Context);
  try
    lForm.Caption := '新增';
    if lForm.ShowModal = Business.Forms.Controls.mrOk then
      JsDialogs.ShowMsg('调用窗体成功!','提示');
  finally
    lForm.Free;
  end;
end;

当第一次选择了探出窗体中的第三条记录,第二次点击时弹出的窗体的截图(我们想要的效果是当再次点击时弹出的窗体自动定位到第一条记录)

que.gif

9.35 KB, 下载次数: 303

回复

使用道具 举报

 楼主| 发表于 2007-1-22 15:43:59 | 显示全部楼层

关于数据集是否释放的问题!!!

目前我们遇到的问题是这样的:
我们建立了一个引用数据库表的功能(在数据表中有数据的前提下),另外单独建立了一个独立的空白窗体的功能,在上面做了一个 "添加" 按钮,弹出刚才创建的功能窗体,然后选择窗体上的记录,比如说定位到非第一条的记录上,点击确定按钮,而当我们再次点击
“添加”按钮第二次弹出添加窗体时,当前的记录却定位到了第一次调用时点击的记录位置而不是重新定位到第一条记录,请问这是什么原因呢?
我的代码是这样写的:(在空白窗体上添加了一个名为“添加”的按钮的OnClick事件)
procedure TMainForm.btnAddClick(Sender: TObject);
var
  lForm: TFRM_Main;
begin
  lForm := TFRM_Main.Create(Context);
  try
    lForm.Caption := '新增';
    if lForm.ShowModal = Business.Forms.Controls.mrOk then
      JsDialogs.ShowMsg('调用窗体成功!','提示');
  finally
    lForm.Free;
  end;
end;

当第一次选择了探出窗体中的第三条记录,第二次点击时弹出的窗体的截图(我们想要的效果是当再次点击时弹出的窗体自动定位到第一条记录)

que.gif

9.35 KB, 下载次数: 281

回复 支持 反对

使用道具 举报

发表于 2007-1-22 16:27:02 | 显示全部楼层
改变一下数据集游标即可,参考代码:
DataSetBroker1.DataSet.First;
回复 支持 反对

使用道具 举报

发表于 2007-1-22 16:29:47 | 显示全部楼层
呵呵,汗。。。。。
我们要问的是为什么窗体释放后窗体里的咚咚比如现在用到的那个数据集似乎还存在,也就是当我们二次创建那个窗体实例后,里面的数据集似乎不是二次创建出来的
请问要如何做才能达到那个数据集也二次创建呢^_^
回复 支持 反对

使用道具 举报

发表于 2007-1-22 16:37:35 | 显示全部楼层
窗体上用数据集组件了么?这个网格控件连接的又是哪儿的数据集呢?
如果连接的是信息上的数据集那就不会随着窗体的创建而创建嘛,这么说楼主能明白么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-22 16:41:06 | 显示全部楼层
请问要如何做才能达到那个数据集也二次创建呢
回复 支持 反对

使用道具 举报

发表于 2007-1-23 09:01:58 | 显示全部楼层
如果信息的隔离级是默认的话,当有功能需要调用信息中内容的时候就会创建这个信息的一个实例。这时候如果其它功能调用此信息就会再创建一个信息实例。信息实例的生存期是到功能被关闭就结束了。
6#的问题要看这个数据集到底放在哪儿了,如果是连接到信息上数据集的数据集代理,那么就要结合上面的描述来解决。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-23 09:40:54 | 显示全部楼层
版主所提到的数据集就是连接到信息上数据集的代理,请结合1#的描述来给出一个解决方案
回复 支持 反对

使用道具 举报

发表于 2007-1-23 10:40:04 | 显示全部楼层
明白原理后,1#的解决办法请看3#
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-23 10:45:31 | 显示全部楼层
3#的方法是可以实现我们想要的效果,但是我们要问的是为什么当1#的窗体释放后,而连接到它上的数据集没有释放掉的原因和如何解决
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-24 02:09 , Processed in 0.051043 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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