请大神指教
delphi吧
全部回复
仅看楼主
level 1
代码:
procedure TForm12.Button2Click(Sender: TObject);
var
rq1,rq2:string;
begin
rq1:=formatdatetime('yyyy-MM-dd',now());
rq2:=formatdatetime('yyyy-MM-dd',now()+30);
if(dbEdit1.Text<>'')and(dbEdit2.Text<>'')and (dbEdit3.Text<>'')and(dbEdit4.Text<>'')and(dbEdit5.Text<>'')and(dbEdit6.Text<>'')
then begin
if(DBEdit6.Text='入藏')
then begin
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 读者信息 where 证件号='''+form1.name+''' and 密码='''+form1.code+'''') ;
adoquery1.Open ;
if(adoquery1.fieldbyname('已借数量').AsString<=adoquery1.fieldbyname('限借数量').AsString)
then begin
adoquery1.SQL.Clear;
ADOQuery1.SQL.Text:='insert into 借阅信息(证件号,图书编号,图书名称,借出日期,应还日期,备注) values(:a,:b,:c,:d,:e,:f)';
ADOQuery1.Parameters.ParamByName('a').Value:=trim(form1.name);
ADOQuery1.Parameters.ParamByName('b').Value:=trim(dbedit1.text);
ADOQuery1.Parameters.ParamByName('c').Value:=trim(dbEdit2.Text);
ADOQuery1.Parameters.ParamByName('d').Value:=rq1;
ADOQuery1.Parameters.ParamByName('e').Value:=rq2;
ADOQuery1.Parameters.ParamByName('f').Value:='未还书';
adoquery1.SQL.add('update 图书信息 set 图书状态='''+'借出'+''' where 图书编号='''+dbedit1.text+'''');
adoquery1.SQL.add('update 图书信息 set 借出次数=借出次数+1 where 图书编号='''+dbedit1.text+'''');
adoquery1.SQL.add('update 读者信息 set 已借数量=已借数量+1 where 证件号='''+form1.name+'''');
adoquery1.ExecSQL;
showmessage('借书成功欢迎使用');
end
else
showmessage('此书已借出!');
end
else
showmessage('最多只能借五本,借书失败');
end
但是运行的时候报错,说dbedit not found!
怎么改才行啊
2015年10月31日 04点10分 1
level 8
dbEdit1.Text这表示这个文本已经在数据库里了,才能这样取。如果还没保存到数据库,这种写法肯定报错,就如同,你填了一张银行的取款单,写了要取款1000万,而你实际存款才几万。你能取出1000万吗?
解决方法之一,把这些dbEdit控件都换成Edit控件。
2015年10月31日 04点10分 2
我改了,没有语法错误。但是出现了逻辑错误。就是点击借书就直接弹出“最多只能借五本,借书失败”这一条,中间的判断都没有
2015年10月31日 05点10分
1