dbgrid及几个dbedit与一个adoquery1相连,dbedit用来修改,但怎么样保证没有同名?

easygoals 2003-08-23 10:14:18
假设adoquery1中有字段:产品代码,产品名称等等
我的dbgrid只是用来浏览,而用dbedit1,dbedit2等等来修改,问题是我怎么样保证我在dbedit1里修改的代码和表中不能有重复?
...全文
38 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutian618 2003-08-24
  • 打赏
  • 举报
回复
产品编码设成主键吧。

定位也没有用的。
有网络操作的情况在啊。
easygoals 2003-08-24
  • 打赏
  • 举报
回复
我的DBGRID本身就是只读的呀!它只是用来显示的
我的意思是:dbedit中修改内容后又两种方式存进数据库
1,直接用post
2,只要在dbgrid中换行(换行就默认了post)
那么,象第二种形况,我根本来不及检测它就进数据库,检测了有重复也没用
paliang 2003-08-24
  • 打赏
  • 举报
回复
看看有没有帮助,你可以做一个判断,如果填入的内容edit1.text在数据库中存在就‘怎么样'
没有就'怎么样'不过可能比较费时间,这段代码你应该看的懂
procedure TForm1.Button1Click(Sender: TObject);
var str: string;
begin
str:='select * from ypxx where ph='+Edit1.Text;

AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add(str);
AdoQuery1.open;

AdoQuery1.First;
if adoQuery1.Eof then
begin
showmessage('有了');
end;

end;

还有就是把DBGRID设成只读,比较好
47522341 2003-08-23
  • 打赏
  • 举报
回复
在修改前加一条判断语句
if not locate(fieldname,edit1.text,[]) then
begin
//进行修改操作
end;

不知道可不可以,
walkmangood 2003-08-23
  • 打赏
  • 举报
回复
你可以把DBGRID设成只读的呀,或者在adoquery的字段里设只读的
easygoals 2003-08-23
  • 打赏
  • 举报
回复
我的程序里有些特殊的地方,不能用这用方法,因为我的字段名总体是允许重复的,但在某个动态的adoquery1中不允许重复,所以不能用捕捉错误信息的方法。
能否有其它方法?
guylibo 2003-08-23
  • 打赏
  • 举报
回复
你可以将无重复字段设成 主键

这样会返回错误信息,你捕捉错误信息即可
kedao 2003-08-23
  • 打赏
  • 举报
回复
用下面语句:
ADOQuery1.fieldbyname('字段').asstring:=dbedit1;
easygoals 2003-08-23
  • 打赏
  • 举报
回复
问题是事件放在那儿?
我碰到的问题是:
在dbedit中修改了内容,再把鼠标在dbgrid中一点,就进去了
根本不用post
根本来不及检测呀!
liangzisiyun 2003-08-23
  • 打赏
  • 举报
回复
用定位操作肯定可以的。

5,388

社区成员

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

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