procedure TZulinForm.Button1Click(Sender: TObject);
begin
query2.Close;
query2.SQL.clear;
query2.Params.clear;
query2.Params.CreateParam(ftstring,'sj',ptinput).AsString:=sjedit.Text;
query2.Params.CreateParam(ftstring,'rq',ptinput).AsString:=rqedit.Text;
query2.Params.CreateParam(ftstring,'_id',ptinput).AsString:=idedit.Text;
query2.Params.CreateParam(ftstring,'xm',ptinput).AsString:=xmedit.Text;
query2.Params.CreateParam(ftstring,'sm',ptinput).AsString:=smedit.Text;
query2.Params.CreateParam(ftstring,'zj',ptinput).AsString:=zjedit.Text;
query2.Params.CreateParam(ftstring,'yj',ptinput).AsString:=yjedit.Text;
showmessage('参数部分完成');
query2.SQL.Add('insert into zulinbiao values(:sj, :rq, :_id, :xm, :sm, :zj, :yj);');
query2.ExecSQL;
showmessage('SQL语句执行完毕');
query2.Open;
showmessage('QUERY已经打开');
query2.Close;
showmessage('QUERY 已经关闭');
//当会员租赁了一本书之后,要对会员表的 ‘当前租赁本数’更新+1,以下是更新过程
query1.Close;
query1.SQL.clear;
query1.Params.clear;
showmessage('开始更新会员表的 当前租赁本数');
query1.sql.add('update table huiyuanbiao set dangqianzulinbenshu=:dangqianzulinbenshu+1 where id=:_id;');
query1.ExecSQL;
query1.Open;
query1.Close;
showmessage('更新成功');
end;1.上面的代码,执行完QUERY2 的SQL语句后就出现一个错误,提示:KEY VIOLATION ,汗~~
接着造成了QUERY1 对会员表不能进行更新
2.但是打开ZULINBIAO,发现记录确实已经写入!又汗~~~~
3.设置这么多的MESSAGE主要是为了分步调试程序,看问题到底出在那里,结果,提示了“SQL语句执行完毕”后,接着提示 KEY VIOLATION (关键字非法?)!!
4.看来程序没问题,这个错误是在操作数据库时返回的吧?
5.请帮小弟度过难关,谢谢!
begin
query2.Close;
query2.SQL.clear;
query2.Params.clear;
query2.Params.CreateParam(ftstring,'sj',ptinput).AsString:=sjedit.Text;
query2.Params.CreateParam(ftstring,'rq',ptinput).AsString:=rqedit.Text;
query2.Params.CreateParam(ftstring,'_id',ptinput).AsString:=idedit.Text;
query2.Params.CreateParam(ftstring,'xm',ptinput).AsString:=xmedit.Text;
query2.Params.CreateParam(ftstring,'sm',ptinput).AsString:=smedit.Text;
query2.Params.CreateParam(ftstring,'zj',ptinput).AsString:=zjedit.Text;
query2.Params.CreateParam(ftstring,'yj',ptinput).AsString:=yjedit.Text;
showmessage('参数部分完成');
query2.SQL.Add('insert into zulinbiao values(:sj, :rq, :_id, :xm, :sm, :zj, :yj);');
query2.ExecSQL;
showmessage('SQL语句执行完毕');
query2.Open;
showmessage('QUERY已经打开');
query2.Close;
showmessage('QUERY 已经关闭');
//当会员租赁了一本书之后,要对会员表的 ‘当前租赁本数’更新+1,以下是更新过程
query1.Close;
query1.SQL.clear;
query1.Params.clear;
showmessage('开始更新会员表的 当前租赁本数');
query1.sql.add('update table huiyuanbiao set dangqianzulinbenshu=:dangqianzulinbenshu+1 where id=:_id;');
query1.ExecSQL;
query1.Open;
query1.Close;
showmessage('更新成功');
end;1.上面的代码,执行完QUERY2 的SQL语句后就出现一个错误,提示:KEY VIOLATION ,汗~~
接着造成了QUERY1 对会员表不能进行更新
2.但是打开ZULINBIAO,发现记录确实已经写入!又汗~~~~
3.设置这么多的MESSAGE主要是为了分步调试程序,看问题到底出在那里,结果,提示了“SQL语句执行完毕”后,接着提示 KEY VIOLATION (关键字非法?)!!
4.看来程序没问题,这个错误是在操作数据库时返回的吧?
5.请帮小弟度过难关,谢谢!
解决方案 »
- 动态生产TcxGrid
- 我需要一个类似sqlserver中视图设计器类似的组件,大家谁用过给推荐一下的,谢谢了.
- 关于一个创建access库,但在创建时要密码的问题
- if dataset.recordcount<>1 then 为什么是错误的?
- 请大家帮助我修改一个程序
- 這個問題簡單嗎?一個關於keypress問題,請進!!!!!!!!!!
- 请问大虾:使用ADO组件如何开发类似"在上次搜索的结果中搜索"这样的功能??
- 一个ADOQUERY多表查询的问题?!
- 在Delphi中是否有像C语言中的“\n”这样的转意字符?
- 怎么移动treeview的selected?
- 什么是e-r图?总听说,又不太明白!
- 点个名,看看都谁在呀
干嘛不用一条用句直接插进去AdoQuery.sql.text := 'insert into zulinbiao values('+QuotedStr(sdf)..+','+..+')';
TO :ffwin() ,我把时间设置为主键了,都精确到了H M S 了,值有重复的的可能性应该不是太大了吧,可他就是还是错!我干脆不在表上设主键了,但是新的错误又出现了,郁闷!
看来还是自己没怎么学好爬,就想着去跑了,老碰墙,算了不写了,还得从头学本书吧,那位哥哥推荐一本DELPHI书啊?不要太基本了,但也不能太高深了,最好能有一定的代码量,值得让人研究一番,然后读完此书让人有豁然开朗的感觉(很美妙的享受哦)。或者一本专门的全部是完整案例的教材也不错哦,这个样就更直接了,超爽的感觉就是好!!
谢谢各位指点迷津^_^
第二個問題:query1.sql.add('update table huiyuanbiao set dangqianzulinbenshu=:dangqianzulinbenshu+1 where id=:_id;');
你傳了一個 :_id進去,爲什麽不對它進行
paramerbyname('_id').value:=....