以前用pb,初学Delphi。请教:ADOConnection连接数据库,ADOQuery添加记录,第一次成功,只要再按一次,立即出现错误提示:Access violation at adress xxxxxxxx in module '应用程序名称'.Read of adress 00000000
胡乱看书,记得Query执行什么不返回结果集,又有什么不能执行insert update delete命令,不知如何解决? 苦恼万分!请各位大力支持!
胡乱看书,记得Query执行什么不返回结果集,又有什么不能执行insert update delete命令,不知如何解决? 苦恼万分!请各位大力支持!
解决方案 »
- 如何编写组件安装工程?有知道的请进来
- 想找一书请问谁有 ,Delphi7从入门到精通,!
- 请问如何用程序检测某控件是否存在某属性。谢谢
- 急问:delphi 用ADO控件是如何提交事务 大家给我回的贴我还有疑问
- 再次感谢各位兄弟姐妹这些对我的帮助!!!希望【斑竹】不要删!
- 我是delphi的初学者,还请大家多多指点
- 关于连接数据库
- 又有问题了,请大家帮忙看看如何实现桌面精灵?????
- Query.RecordCount=-1是怎么回事,里面有很多记录的呀?
- 如何在DBEdit控件中输入Unicode字符?
- ********请高人指点:Dbgrid 弹出的右键菜单问题?**************
- 时间问题datetimetostr
更不知道 “胡乱看书,记得Query执行什么不返回结果集,又有什么不能执行insert update delete命令,不知如何解决?”
这个你是从哪本书上看的ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into userlist (username,password) values("2","3")');
ADOQuery1.ExecSQL;
~~~~~~~~~···如果设置了主码
检查一下是否存在相同的就是先select一下看有没
但各位所作的设想我都已试过了。结果一如既往。语句如下:
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('insert into book values(:account,:bookname)');
ADOQuery.Parameters.ParamByName('account').Value:=Edit_account.text;
ADOQuery.Parameters.ParamByName('bookname').Value:=Edit_bookname.Text ;
try
ADOQuery.ExecSQL;
MessageDlg('图书添加成功!!', mtInformation, [mbYes], 0);
except
MessageDlg('数据没有正常提交!!', mtInformation, [mbYes], 0);
end;
ADOQuery.Free;
执行,第一次完全正常,提示“图书添加成功!”,此时察看book表,确实也添加了记录。接着更改Edit_account和Edit_bookname的文本内容,再次执行,报错!!!郁闷不已!!
我的程序里用的是ADOQuery1.free,而不是ADOQuery1.CLOSE。
也许问题就出在这里!!
下一个问题我想请问:happyhong(虾皮红)兄,Free和close有什么区别?为什么我用Free会出现这个提示呢?
20分归您了。
谢谢大家!
free把对象都释放了,下次在查询当然会报错了,CLOSE只是把数据集关闭而已