ADOquery问题

sanyuan35 2018-03-26 04:53:01


窗口中“新增”按钮控件代码如下:
Data_form.Aq_z.Open;
Data_form.Aq_z.Append;
Data_form.Aq_z.FieldByName('code').AsString := code_edit.Text;

点击“新增” 时,没有post,就直接提交了,ADOQUERY的locktype属性已选择是ltOptimistic 。 为什么没有post的前提下会自动保存数据了???
在显示窗口,只有一个操作就:Data_form.Aq_z.Open;
...全文
395 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nebula845026 2018-03-28
  • 打赏
  • 举报
回复
你的 Data_form.Aq_z有没有关联对应的DataSource,如果有的话把这个DataSource的AutoEdit属性设置为FALSE 看你的代码,取数据的部分应该是直接使用的基本EDit组件,应该不存在4楼说的情况. 另外,我一般对数据集操作增删改的时候都会限制按钮的状态的,比如通过取得 DataSet.State的属性来设置新增按钮的Enabled
doloopcn 2018-03-28
  • 打赏
  • 举报
回复
Query.Cancel可以取消 不使用DB控件,用普通的EDIT等控件代替DB控件
lyhoo163 2018-03-27
  • 打赏
  • 举报
回复
一、不执行Append语句即可。 二、对于这种情况,你可以通过一个检查事件,让这些不完全的数据行删除掉。
sanyuan35 2018-03-27
  • 打赏
  • 举报
回复
引用 1 楼 lyhoo163 的回复:
如果你是ADOQuery通过连接控件,直接连接数据库的话,上述代码,操作的结果,就是在表中(内存),打开表,加入一行,“Code”字段加入数据,此时你继续录入 ,数据集处于编辑的状态。通常控件约定这样的操作给予保存,(以便保存现状)等待你的下一步操作。
原来是这样子。请教有什么方法避免这种情况发生??只能写ADOQuery.SQL.Text := 'insert into....这种吗?
lyhoo163 2018-03-26
  • 打赏
  • 举报
回复
如果你是ADOQuery通过连接控件,直接连接数据库的话,上述代码,操作的结果,就是在表中(内存),打开表,加入一行,“Code”字段加入数据,此时你继续录入 ,数据集处于编辑的状态。通常控件约定这样的操作给予保存,(以便保存现状)等待你的下一步操作。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧