修改某记录,记录主键可修改.保存时怎样判断是否重复?
解决方案 »
- 请问如何用delphi代码实际复制一个正在被别的程序打开的forpro的dbf数据库文件。
- 有个小问题,烦请高手作答
- combobox问题!!
- 研究TCustomGrid类时有个疑问,请师兄看看。
- 如何截获处理数据库错误
- 在C++中实现与,或,左移位,右移位的操作都是对byte的,但在delphi中规定的参数只能是integer,如果要对delphi中的char实现这些操作该如
- 如何利用DELPHI的 Tseversocket Tclientsocket 实现一个bmp文件的传输?急需答复!谢!
- 高手相送!谁有可以加入checkbox的树形控件。
- 如何用代码实现对TTreeView中某一个节点的选中???比如第一个节点.
- 谁能解决EXE读取自己的困难?一个不大不小的难题
- Dspack如何解决wmv文件的声道
- 如何叠加两幅大小相等的图片成为一幅图片?其中上面的图片有透明的部分。
这里是修改啊,而不是新增.
qryTemp:=TADOQuery.Create(nil);
qryTemp.connection:=datamodule.cn;
qryTemp.Clone(qrySource,ltBatchOptimistic);
然後在qryTemp裡面查找edt.text,接著判斷recno是否與qrySource的相同
qryTemp.Clone(qrySource,ltBatchOptimistic);
此行什么意思啊.能详细点吗?
try
//修改语句
except
//修改不成功弹出异常
end;
从qrySource拷贝数据到qryTemp
你将修改后的主键值作为参数进行查询,
select count(*) from table where 主键=:pid
如果大于等于1,那就不行。(主键值应该和以前不同,否则根本就不执行这个判断)
也就是if newvalue<>oldvalue then
select count(*) from table where 主键=:pid
to:caijitao(阿修罗)
如果主键值没有修改,保存时就不行了.怎样判断主键值是否改变啊. to :plq(不懂就问)
你的newvalue 与oldvalue 何来?
Create Trigger TU_table on table_a
for update]
as
If exists (select * from table_a a, Inserted b
where a.key=b.key
)
Begin
Raiserror 333333 '鍵值重複'
rollback transaction
End
table.cancel
else
post
不好意思我打错了,我的思路是
首先保存住原来的pid,然后在
你要提交时(比如某个确定按钮)
与新的pid进行比对,如果还相等,则
不做任何动作,如果不相等,则使用
一个临时的query查找是否已有pid与新的
pid相冲突,如果有则提示
str1:=Adoquery1.fieldbyname('主鍵').value;//Str1:=DBEdit1.text;
Adoquery1.edit;
Str2:=DBedit1.text;
if Str1<>Str2 then
begin
adoquery.close
adoquery.SQL.add('secect 主鍵 from table1 where 主鍵='+#39+Str+#39);
adoquery.open;
if adoquery.recordcount>=1 then
showmeeage('主鍵存在');
adoquery.close;
end;
adoquery1.post;