procedure Tfrm_jsqr.Button1Click(Sender: TObject);
var
b:integer;
c:string;
e:tdatetime;
begin
b:=data1.ADOqr.fieldbyname('书籍总数').Value;
e:= incday(now,30);
if b=0 then
application.MessageBox('此书全部外借中','提示',64)
else
begin
with data1.ADOdzxx do
begin
close;
sql.clear;
sql.Add('select * from 读者信息表 where 姓名=:c');
parameters.ParamByName('c').Value:=edit1.Text;
open;
end;
data1.ADOdzxx.Active:=true;
with data1.ADOjyxx do
begin
close;
sql.Clear;
sql.Add('select * from 借阅信息表 where 1=2');
open;
append;
fieldbyname('ISBN').AsString:=edit2.Text;
fieldbyname('姓名').AsString:=edit1.Text;
fieldbyname('借书日期').AsDateTime:=date();
fieldbyname('应还日期').AsDateTime:=e;
post
end;
with data1.ADOqr do
begin
close;
sql.Clear;
sql.Add('update 书籍信息表 set 书籍总数=:d where ISBN=:c');
parameters.ParamByName('c').Value:=edit2.Text;
parameters.ParamByName('d').Value:=b-1;
execsql;
end;
application.MessageBox('保存成功','提示',64);
end;
close;
end;程序如上,现在我能实现 功能上 书籍总数-1 数据库同时-1
但是我需要关掉整个程序后 然后重启程序 dbgrid 里的数据才-1
我不知道怎么及时更新 DBgrid 里的程序 求教大虾们。。
var
b:integer;
c:string;
e:tdatetime;
begin
b:=data1.ADOqr.fieldbyname('书籍总数').Value;
e:= incday(now,30);
if b=0 then
application.MessageBox('此书全部外借中','提示',64)
else
begin
with data1.ADOdzxx do
begin
close;
sql.clear;
sql.Add('select * from 读者信息表 where 姓名=:c');
parameters.ParamByName('c').Value:=edit1.Text;
open;
end;
data1.ADOdzxx.Active:=true;
with data1.ADOjyxx do
begin
close;
sql.Clear;
sql.Add('select * from 借阅信息表 where 1=2');
open;
append;
fieldbyname('ISBN').AsString:=edit2.Text;
fieldbyname('姓名').AsString:=edit1.Text;
fieldbyname('借书日期').AsDateTime:=date();
fieldbyname('应还日期').AsDateTime:=e;
post
end;
with data1.ADOqr do
begin
close;
sql.Clear;
sql.Add('update 书籍信息表 set 书籍总数=:d where ISBN=:c');
parameters.ParamByName('c').Value:=edit2.Text;
parameters.ParamByName('d').Value:=b-1;
execsql;
end;
application.MessageBox('保存成功','提示',64);
end;
close;
end;程序如上,现在我能实现 功能上 书籍总数-1 数据库同时-1
但是我需要关掉整个程序后 然后重启程序 dbgrid 里的数据才-1
我不知道怎么及时更新 DBgrid 里的程序 求教大虾们。。
解决方案 »
- delphi树形控件如何使用
- 笔记本上用USB转RS232串口,为何初始化串口总是失败?
- 动态添加控件??
- 不知道该如何定位,希望大家给点建议。
- 有关dll和主窗体间通讯的问题
- 又是一個傷心的夜晚!苦悶,散分………!
- 神啊,救救我吧!"OraOLEDBpus.dll:找不到运行此应用程序所需的某个库文件"
- 请问怎样使用colorbox改变edit1的文字的颜色?谢谢了!
- 关于动态报表的问题——————————————————————————
- 自定义链表表项record中能否还有DELPHI中的诸如TLABEL一类的对象
- delphi新手请教如何实现点击Button,然后在DBGrid中显示access数据
- 关于本人毕业设计的问题
我建议datasource与data1.ADOdzxx相连接
在你执行修改表的SQL时:
else
begin
with data1.ADOdzxx do
begin
DisableControls; //加入这条,使DBgrid不滚动
...
application.MessageBox('保存成功','提示',64);
end;
close;
open; //刷新DBgrid
DisableControls; //显示数据
end;
DisableControls; //显示数据
改为
EnableControls; //显示数据如果是直接与表相连接的:
with AdoTable1 { 你的表 } do
begin
DisableControls; //加入这条,使DBgrid不滚动
Close;
Open; //刷新DBgrid
EnableControls; //显示数据
end;