| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1685 人关注过本帖
标题:为什么不运行这一行啊?总是跳过去,然后提示说违反了约束主键,说主键不能 ...
只看楼主 加入收藏
红枫林
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-3-29
收藏
 问题点数:0 回复次数:8 
为什么不运行这一行啊?总是跳过去,然后提示说违反了约束主键,说主键不能重复

为什么不运行红色的这一行啊?总是跳过去,然后提示说违反了约束主键,说主键不能重复
请指教!!!
procedure TForm1.Button2Click(Sender: TObject);
begin
with ADOTableStore do
begin
first;
while not eof do
begin
if((edit1.Text=fieldbyname('StorehouseID').AsString) and (edit2.Text=fieldbyname('Sbin').AsString)) then
begin
ShowMessage('该位已经存货,请选择别的货位!');
edit1.Text:='';
edit2.Text:='';
end;

if ((edit1.Text='')or (edit2.Text='')or(edit3.Text='')or(edit4.Text='')or(edit5.Text='')or(edit6.Text='')or(edit7.Text='')or(edit8.Text='')or(edit9.Text='')or(edit10.Text='')or(edit11.Text='')or(edit12.Text='')or(edit13.Text='')or(edit14.Text='')or(edit15.Text='')) then
begin
ShowMessage('信息填写不完整!')
end
else
begin
edit;
append;
fieldbyname('StorehouseID').AsString:=edit1.Text;
fieldbyname('Sbin').AsString:=edit2.Text;
fieldbyname('ItemID').AsString:=edit3.Text;
fieldbyname('Sfrom').AsString:=edit4.Text;
fieldbyname('SIntoQty').AsString:=edit5.Text;
post;
Refresh;
showmessage('存货成功!');
end;

break;
end;
next;

end;
end;

搜索更多相关主题的帖子: 运行 提示 
2007-04-14 17:26
nongen
Rank: 5Rank: 5
来 自:网络
等 级:贵宾
威 望:17
帖 子:322
专家分:0
注 册:2006-11-25
收藏
得分:0 
不要在循环中append 数据
你的这种方式,根本就不起作用,当第一条记录都不满足前面的if 时,就会增加,根本不去找后面还有没有.

[此贴子已经被作者于2007-4-14 22:42:03编辑过]


昨天不是我的,明天不是你的,今天却是我们的。
http://www.
2007-04-14 22:37
红枫林
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-3-29
收藏
得分:0 

谢谢版主,能不能告诉我,我改怎么改啊?多谢了


2007-04-15 15:09
aaron52088
Rank: 1
等 级:新手上路
帖 子:130
专家分:0
注 册:2007-1-24
收藏
得分:0 
我想问一个问题: if((edit1.Text=fieldbyname('StorehouseID').AsString) and (edit2.Text=fieldbyname('Sbin').AsString)) then
这句使用的时候前面不需要添加上查询语句:
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from **表');
adoquery1.open;
吗?
我没添加的时候,程序运行的时候会出现说adoquery1:Field 'storehouID' not found之类的话,为什么呢?

2007-04-15 15:19
红枫林
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-3-29
收藏
得分:0 

我用的是Ttable控件,不是Query


2007-04-15 15:22
nongen
Rank: 5Rank: 5
来 自:网络
等 级:贵宾
威 望:17
帖 子:322
专家分:0
注 册:2006-11-25
收藏
得分:0 
用boolean变量来查找是否有重复的,
在循环结束后根据此变量来判断是否添加记录

昨天不是我的,明天不是你的,今天却是我们的。
http://www.
2007-04-16 20:13
红枫林
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-3-29
收藏
得分:0 
多谢版主!!!

2007-04-16 22:08
红枫林
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-3-29
收藏
得分:0 
nongen版主,快点帮我回答下一个问题,我的脑袋都木了
下一个问题就是关于datanoudal的那个

2007-04-16 22:23
sgliuxiu
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:291
专家分:0
注 册:2007-2-2
收藏
得分:0 
if((edit1.Text=fieldbyname('StorehouseID').AsString) and (edit2.Text=fieldbyname('Sbin').AsString)) then
begin
ShowMessage('该位已经存货,请选择别的货位!');
edit1.Text:='';
edit2.Text:='';
end;
将if改为如下试试
if((trim(edit1.Text)=fieldbyname('StorehouseID').AsString) and (trim(edit2.Text)=fieldbyname('Sbin').AsString)) then

小猫说:给我10元钱
2007-04-17 22:56
快速回复:为什么不运行这一行啊?总是跳过去,然后提示说违反了约束主键,说主键 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017591 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved