一个关于数据保存的问题。

bobo2856 2004-06-18 11:41:48
我用的是IB数据库,用DBEDIT和库中的 一个表相连接,当我向表中增加记录的时候,如果关键字段重复,但它并不提示出错,只是不能保存到数据库里面去。
如:try
simpledataset.ApplyUpdates(0);
except
on E:Exception do ShowMessage(E.Message);
end;
我想问一下有没有别的好办法在保存数据的时候来判断一下关键字段是否已经存在。
最好是在客户端完成。用LOCATE方法好想不太行,因为我用了DBEDIT控件和表连接了,所以找的时候肯定是已经存在的
...全文
84 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
太空11 2004-06-18
  • 打赏
  • 举报
回复
query.close;
query.sql.clear;
query.sql.add('select * from 表where id = edit1.text');
query.open;
if query.recordcount> 0 then
begin
showmessage('存在')
end;
yangfan1981 2004-06-18
  • 打赏
  • 举报
回复
fhuibo(Sailor)的方法
query.close;
query.sql.clear;
query.sql.add('select * from 表where id = edit1.text');
query.open;
MySum := query.recordcount;
if MySum > 0 then
begin
showmessage('存在')
end;

是最好的。简单,明了,灵活。
yinweixian 2004-06-18
  • 打赏
  • 举报
回复
好象不可以吧,你不操作数据库怎么知道有了那个关键字呢?
要么你在前面操作数据库的时候为每个关键字给个标记。
当你再加的时候把当前关键字和每个标记去比较。看有没有一样的
bobo2856 2004-06-18
  • 打赏
  • 举报
回复
fhuibo(Sailor) 你的这个方法是又要对数据库进行操作。也就是还要在服务器端进行操作,我想的是就在客户端就能判断出来的
fhuibo 2004-06-18
  • 打赏
  • 举报
回复
query.close;
query.sql.clear;
query.sql.add('select * from 表where id = edit1.text');
query.open;
MySum := query.recordcount;
if MySum > 0 then
begin
showmessage('存在')
end;
bobo2856 2004-06-18
  • 打赏
  • 举报
回复
youhuiyun(youhuiyun) 你能说的具体一点吗?或是给个例子
youhuiyun 2004-06-18
  • 打赏
  • 举报
回复
locate不好,效率很差
bobo2856 2004-06-18
  • 打赏
  • 举报
回复
有没有别的更好的办法呀
youhuiyun 2004-06-18
  • 打赏
  • 举报
回复
可以通过recordcount判断
bsmqu 2004-06-18
  • 打赏
  • 举报
回复
在post以前用查询一下就知道了呗
pandarus 2004-06-18
  • 打赏
  • 举报
回复
应该有结果了!

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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