给100分算了,只要能解决问题!!!!!!!!!!
我在面板上放置了Edit1.Text,Edit2.Text.用来输入数据到数据库中.
其中Edit1.Text用来输入产品编号.Edit2.Text用来输入产品信息.要如何防止Edit1.Text输入同样的编号到数据库中?
例如:Edit1.Text输入的数据在添加到数据库中是,系统提示有重复编号.否则成功将Edit1.Text和Edit2.Text的内容输入到数据库中.谢谢大家提供方法!!!!
大家可以看看我另一张关于这个问题的帖子http://community.csdn.net/Expert/topic/5243/5243825.xml?temp=.5258905
我在面板上放置了Edit1.Text,Edit2.Text.用来输入数据到数据库中.
其中Edit1.Text用来输入产品编号.Edit2.Text用来输入产品信息.要如何防止Edit1.Text输入同样的编号到数据库中?
例如:Edit1.Text输入的数据在添加到数据库中是,系统提示有重复编号.否则成功将Edit1.Text和Edit2.Text的内容输入到数据库中.谢谢大家提供方法!!!!
大家可以看看我另一张关于这个问题的帖子http://community.csdn.net/Expert/topic/5243/5243825.xml?temp=.5258905
解决方案 »
- Delphi中怎样把Tchart的X坐标自定义为时间坐标
- 关于int 型与字符型的转换问题
- 一个加载图片的小问题
- 超头痛,在退出程序时出错,请DELHPI高手指点迷经!TKS
- ******实用问题:变量能传递到TTable里面进行操作吗??*******
- 如何获取数据表上的字段名
- Stringgrid左边那一条灰色的怎么去掉啊?
- TFileStream.Write(Buffer,Length)中的Length怎么才能大于1024?
- 请大家推荐一下delphi学习com/com+方面的书籍(电子书籍最好)
- 如何来实现用UDP接收视频流然后通过TCP转发到服务器
- 哪里有vfw.pas这个单元下载啊?
- 怎让窗口保持在最前?
2.提交前判断,TStingList.IndoxOf(Edit1.Text)<=0 时提交数据,否则提示重复记录.
3.当提交成功后,TStringList.Add(Edit1.Text),这样就不需要再初始化记录了
@fcount int,
@Rst1 int
begin
select @fcount=count(*) from t where id='2';
if @fcount>0
begin
set @Rst1 = 2;
print @Rst1;
return;
end
else
begin
insert into t values ('2','1');
set @Rst1 = 1;
print @Rst1;
return;
end;
end;
返回2就是已存在 返回1就是成功
begin
Close;
CommandText:='select * from TableName where 编号='+Trim(Edit1.Text);
Open;
if RecordCount > 0 then exit;
Append;
FieldByName('列名1').AsString := Trim(Edit1.Text);
FieldByName('列名2').AsString := Trim(Edit2.Text);
ApplyUpdates(-1);
end;大约应该是这样子
begin
Close;
CommandText:='select * from TableName where 编号='+Trim(Edit1.Text);
Open;
if RecordCount > 0 then exit;
Append;
FieldByName('列名1').AsString := Trim(Edit1.Text);
FieldByName('列名2').AsString := Trim(Edit2.Text);
ApplyUpdates(-1);
end;谢谢大家的提意.我想应该是上面这种形式,如 Edit1.Text用来输入产品编号已经在数据库中,则提示"此编号已有,请重新选择" 否则将数据添加到数据库.
begin
close;
sql.clear;
sql.add('select * from 表 where 编号='''+Edit1.Text+''');
open;
if not eof then
showmessage('编号已存在')
else上面这样写的吗?下面怎么写"?
begin
close;
sql.clear;
sql.add('select * from 表 where 编号='''+Edit1.Text+''');
open;
if not eof then
showmessage('编号已存在')
else
begin
close;
sql.clear;
sql.add('insert 表(編號,信息) values('''+Edit1.Text+''','''+Edit2.Text+''')+'''';
ExecSQL;這樣可以啦
with adoquery do
begin
close;
sql.clear;
sql.add('select * from 表 where 编号='''+Edit1.Text+''');
open;
if not eof then
showmessage('编号已存在')
else
begin
close;
sql.clear;
sql.add('insert into 表(編號,信息) values('''+Edit1.Text+''','''+Edit2.Text+''')'''';
ExecSQL;
begin
if not ChBox.checked then
begin
try
con.BeginTrans;
con.Execute('insert into Insdata(Sn,Wo,Lot)values('+''''+StrSn+''''+','+''''+StrWo+''''+','+''''+StrLot+''''+')');
con.CommitTrans;
Result:=True;
except
con.RollbackTrans;
ShowMessage('數據記錄重復!請確認!!!');//判斷記錄是否重復
Result:=False;
end;
end
else
result:=true;
end;
对于SQL数据库,只要把字段设为“不重复”即可,对于其它类型的数据库,要分别对待。
as
begin
BEGIN TRAN Add_Goods
if not exists(select * from t_goods where goodsid=@goodsid)
begin
insert into t_goods(goodsid,goodsinfo) values( @goodsid, @goodsinfo)
select MSB='添加成功'
end ELSE
BEGIN
select MSB='物品编号已经存在!'
END
COMMIT TRAN Add_Goods
endwith adoqurry1 do
begin
close;
sql.text:=format('exec AddGoods %s,%s',[QuoterStr(edit1.text),QuoterStr(edit2.text)]);
open;
showmessage(fieldbyname('MSB').asstring);
end;
edit1.text:='CPBH'+FormatDateTime('YYYYMMDDHHMMSS',now);
ALTER TABLE TUSER ADD UNIQUE (username)SQLSERVER数据库 在通过UI建表是看不到UNIQUE约束的可以创建表后 增加唯一约束来