CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

请帮我改一下这段代码

楼主hansonboy(hansonboy)2001-08-31 14:34:56 在 Delphi / VCL组件开发及应用 提问

  if     DataModule1.ADOTable1.Locate('LIBNO',edit1.text,[lopartialkey])   then  
          begin  
              showmessage('这个编号已经存');  
              Edit1.SetFocus;  
              Exit;  
          end;  
    if   DataModule1.ADOTable1.locate('DESC',edit2.text,[lopartialkey])   then  
          begin  
              showmessage('这个名称已经存');  
              Edit2.SetFocus;  
              Exit;  
          end;  
   
  当一执行到第二个IF   语句时出错,请问应该怎样写 问题点数:20、回复次数:4Top

1 楼wwwwwwww(我我)回复于 2001-08-31 14:43:44 得分 0

if     DataModule1.ADOTable1.Locate('LIBNO',edit1.text,[lopartialkey])   then  
          begin  
              showmessage('这个编号已经存');  
              Edit1.SetFocus;  
              Exit;  
          end;  
  else   if   DataModule1.ADOTable1.locate('DESC',edit2.text,[lopartialkey])   then  
          begin  
              showmessage('这个名称已经存');  
              Edit2.SetFocus;  
              Exit;  
          end;  
   
  Top

2 楼hansonboy(hansonboy)回复于 2001-08-31 15:28:19 得分 0

还是不行,还是那里出错,出错提示为:  
  THE   application   is   using   arguments   that   of   the   wrong   type,are   out   of    
  acceptable   range,or   are   in   conflict   with   one   another.Top

3 楼wangzh(独孤求问)回复于 2001-08-31 15:42:38 得分 20

相信我没错的,建议你这样编程,把不能重复的字段在数据库里约束为“无重复”,然后在  
  ADOTable1.onPostError下类似这样写:  
  procedure   TForm_DM.ADOTable1.PostError(DataSet:   TDataSet;   E:   EDatabaseError;  
      var   Action:   TDataAction);  
  var  
      adoErrors:   Errors;  
      adoError:   Error;  
      iCount:   Integer;  
  begin  
      adoErrors   :=   ADOC_Holter.Errors;  
      for   iCount   :=   0   to   adoErrors.Count   -   1   do  
      begin  
          adoError   :=   adoErrors.Item[iCount];  
          if   (adoError.NativeError   =   -105121349)   then  
              raise   exception.Create('说明:为了便于管理,字段“编号”或“姓名”的值是不允许重复出现的。请输入其他的值。');  
      end;  
  end;  
  如果非要这样写的化那么让DESC改名为DESC1(DESCd在中ado中有用,为降序字)试试:  
  if     DataModule1.ADOTable1.Locate('LIBNO',edit1.text,[lopartialkey])   then  
          begin  
            raise   exception.Create('这个编号已经存');  
               
          end;  
  if   DataModule1.ADOTable1.locate('DESC'//,edit2.text,[lopartialkey])   then  
          begin  
              raise   exception.Create(('这个名称已经存');  
          end;  
   
  Top

4 楼bubble()回复于 2001-08-31 16:01:40 得分 0

gzTop

相关问题

  • 求一段广告代码.帮修改代码.
  • 谁能帮忙修改这段代码?
  • 帮忙改一下这段代码
  • 帮我改代码!
  • 有谁可以帮我将这小段asp代码改成php代码
  • 请帮忙把一段Delphi代码改写成C++ Builder代码,谢谢!
  • 帮我改改代码!
  • 帮忙改一下代码?
  • 代码修改帮忙啊
  • 帮忙看一段代码!

关键词

  • adotable
  • lopartialkey
  • libno
  • edit
  • setfocus
  • showmessage
  • 出错
  • desc
  • 名称
  • then begin

得分解答快速导航

  • 帖主:hansonboy
  • wangzh

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo