代码如下,程序报错:找不到“实际归还日期”
我的数据库里的借阅信息表中, “实际归还日期”的初始值为NULL
是不是由于数据库里的信息更新不及时,导致我要使用“实际归还日期”时,其值仍然为NULL? 请教各位大虾。。with data1.ADOjyxx do
begin
close;
sql.Clear;
sql.Add('update 借阅信息表 set 实际归还日期=:sjghrq where 姓名=:xm and ISBN=:isbn');
parameters.ParamByName('sjghrq').Value:=datetostr(date());
parameters.ParamByName('xm').Value:=f;
parameters.ParamByName('isbn').Value:=e;
execsql
end;
with data1.ADOyhxx do
begin
close;
sql.Clear;
sql.Add('select 实际归还日期,应还日期 from 借阅信息表 where 姓名=:xm and ISBN=:isbn');
parameters.ParamByName('xm').Value:=f;
parameters.ParamByName('isbn').Value:=e;
execsql
end;
if data1.ADOyhxx.FieldByName('实际归还日期').Value>data1.ADOyhxx.FieldByName('应还日期').Value then
application.MessageBox('此刻,您已超出应还日期','提示',64)
else
application.MessageBox('操作成功','提示',64);
close;
我的数据库里的借阅信息表中, “实际归还日期”的初始值为NULL
是不是由于数据库里的信息更新不及时,导致我要使用“实际归还日期”时,其值仍然为NULL? 请教各位大虾。。with data1.ADOjyxx do
begin
close;
sql.Clear;
sql.Add('update 借阅信息表 set 实际归还日期=:sjghrq where 姓名=:xm and ISBN=:isbn');
parameters.ParamByName('sjghrq').Value:=datetostr(date());
parameters.ParamByName('xm').Value:=f;
parameters.ParamByName('isbn').Value:=e;
execsql
end;
with data1.ADOyhxx do
begin
close;
sql.Clear;
sql.Add('select 实际归还日期,应还日期 from 借阅信息表 where 姓名=:xm and ISBN=:isbn');
parameters.ParamByName('xm').Value:=f;
parameters.ParamByName('isbn').Value:=e;
execsql
end;
if data1.ADOyhxx.FieldByName('实际归还日期').Value>data1.ADOyhxx.FieldByName('应还日期').Value then
application.MessageBox('此刻,您已超出应还日期','提示',64)
else
application.MessageBox('操作成功','提示',64);
close;
begin
close;
sql.Clear;
sql.Add('update 借阅信息表 set 实际归还日期=:sjghrq where 姓名=:xm and ISBN=:isbn');
parameters.ParamByName('sjghrq').Value:=datetostr(date());
parameters.ParamByName('xm').Value:=f;
parameters.ParamByName('isbn').Value:=e;
execsql
end;
with data1.ADOyhxx do
begin
close;
sql.Clear;
sql.Add('select 实际归还日期,应还日期 from 借阅信息表 where 姓名=:xm and ISBN=:isbn');
parameters.ParamByName('xm').Value:=f;
parameters.ParamByName('isbn').Value:=e;
execsql //应该是 open;
end;
if data1.ADOyhxx.FieldByName('实际归还日期').Value>data1.ADOyhxx.FieldByName(' 应还日期').Value then
application.MessageBox('此刻,您已超出应还日期','提示',64)
else
application.MessageBox('操作成功','提示',64);
close;
with data1.ADOjyxx do
begin
close;
sql.Clear;
sql.Add('update 借阅信息表 set 实际归还日期=:sjghrq where 姓名=:xm and ISBN=:isbn');
parameters.ParamByName('sjghrq').Value:=datetostr(date());
parameters.ParamByName('xm').Value:=f;
parameters.ParamByName('isbn').Value:=e;
execsql
end;
with data1.ADOyhxx do
begin
close;
sql.Clear;
sql.Add('select 实际归还日期,应还日期 from 借阅信息表 where 姓名=:xm and ISBN=:isbn');
parameters.ParamByName('xm').Value:=f;
parameters.ParamByName('isbn').Value:=e;
execsql; //应该是 open
end;
if data1.ADOyhxx.FieldByName('实际归还日期').Value>data1.ADOyhxx.FieldByName(' 应还日期').Value then
application.MessageBox('此刻,您已超出应还日期','提示',64)
else
application.MessageBox('操作成功','提示',64);
close;
parameters.ParamByName('isbn').Value:=e;
execsql();
open----返回数据 比如使用select
还有利用
if data1.ADOyhxx.FieldByName('实际归还日期').Value>data1.ADOyhxx.FieldByName(' 应还日期').Value
.value 有可能返回 null 如果是返回 null比较会出错的。。改成这样好点
if data1.ADOyhxx.FieldByName('实际归还日期').AsDatetime>data1.ADOyhxx.FieldByName(' 应还日期').AsDatetime