Access数据库,保存后立即读出,为什么读不到刚保存的数据!

zch619 2006-05-13 03:29:20
我用的Access2000数据库,
当我对数据库中的一个表进行了添加后,立即读数据时不能读到刚保存的数据!
要等上几秒钟才可以读出!
为什么呀?

代码:
procedure TfrmDepartmentSet.RzBtnAttributeClick(Sender: TObject);
begin
if tv1.Selected=nil then
begin
Application.MessageBox('请选择要编辑的部门!','错误',MB_ICONERROR+MB_Ok);
Exit;
end;
if TreeUtil.getSelNodeIndex=0 then
begin
Application.MessageBox('根目录不能进行此操作!','错误',MB_ICONERROR+MB_Ok);
Exit;
end;
AddFlag:=False;
SupDepartName:=tv1.Selected.Parent.Text;
SelDepartID:=TreeUtil.getSelNodeIndex;
frmDepartInfo:=TfrmDepartInfo.Create(Application);//在这个创建的窗口中向部门数据库中添加了一条消息
frmDepartInfo.ShowModal;
TreeUtil.FillTree;//这是一个TreeView控件,实现与数据库关联!
end;

可是,重新刷新的TreeView中没有刚添加的数据,要等上几秒再刷新才可以读到数据!

各位高手请问为什么呀?是数据库问题还是我的程序有问题呀?
...全文
287 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rubi 2006-05-15
  • 打赏
  • 举报
回复
DELPHI7好像有这样的问题
zch619 2006-05-15
  • 打赏
  • 举报
回复
我上一版同样的代码及设置没有问题,
现在不知道怎么就不行了!
wxmwxmwxm 2006-05-15
  • 打赏
  • 举报
回复
先用事务提交,然后马上查询就可以了
2312 2006-05-15
  • 打赏
  • 举报
回复
看看代码,是不是有其他地方的问题,
zch619 2006-05-15
  • 打赏
  • 举报
回复
To:slipsun(永远的菜鸟)
可是我的系统中其他地方也要用到数据源的,断开后其他的所有调用的地方不是都断开了嘛?
Rubi 2006-05-14
  • 打赏
  • 举报
回复
我用adoTable读取数据要等,但是用Adoquery却马上可以,不知道为什么
Rubi 2006-05-14
  • 打赏
  • 举报
回复
你碰见的情况和我一样,我是用adoTable读取数据,来做插入操作,没有办法,我前几天才发了类似的帖子,只能这样,
slipsun 2006-05-14
  • 打赏
  • 举报
回复
把数据源断开,再连接应该可以的。
lcyyax 2006-05-14
  • 打赏
  • 举报
回复
我的也不行,一样的。因为我看结果看查询后结果,所以再查一遍就出来了
postren 2006-05-13
  • 打赏
  • 举报
回复
估计是你的程序其他地方的问题

测试数据如下
access中有一个表Table1 id自动编号, name文本
利用ADO连接

界面上有一个DBGrid1用来显示表中的数据
和TDBGrid关联的DataSet是ADOTable1

插入数据是用ADOQuery1

插入数据后马上刷新就能显示出数据
代码如下:
--------------------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOQuery1 do
begin
SQL.Clear;
SQL.Text := 'Insert into Table1(name)';
SQL.Add('Values(:name)');
Parameters.ParamByName('name').Value := FormatDateTime('YYYY-MM-DD HH:NN:SS.ZZZ', Now);
ExecSQL;
end;
with ADOTable1 do
begin
Close;
Open;
end;
end;

end.

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧