Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1227388
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-10-20 10:36:23



self.LJBQuery.Close;  
  self.LJBQuery.SQL.Clear;  
  self.LJBQuery.SQL.Text   :='select   distinct   count(*)   from   LJB   where   教师姓名=:xingming';  
  self.LJBQuery.ParamByName('xingming').Value:=(self.JSXMDBLookupComboBox.Text);  
  count:=self.LJBQuery.Fields[0].AsInteger;  
  self.LJBQuery.ExecSQL;  
  if   count>0   then  
      ShowMessage('教师姓名已经存在!');  
   
  高手帮我看看!  
  这段代码提示错误!我想判断当前输入的教师姓名是否已经存在,怎么办?  
  这个方法不对   吗?高手给个正确的方法!我以前做C#的,现在研究下Delphi!  
  谢谢高手!

self.LJBQuery.Close;  
  self.LJBQuery.SQL.Clear;  
  self.LJBQuery.SQL.Text   :='select   distinct   count(*)   from   LJB   where   教师姓名=:xingming';  
  self.LJBQuery.ParamByName('xingming').Value:=(self.JSXMDBLookupComboBox.Text);  
  self.LJBQuery.Open;  
  count:=self.LJBQuery.Fields[0].AsInteger;  
   
  if   count>0   then  
      ShowMessage('教师姓名已经存在!');  
 

还没执行查询就去读它的值,当然会有问题的。同意楼上。

为什么要加   distinct   做什么用?

我觉得您的这段SQL代码是在增加开销,如楼上所说为什么要用distinct呢,   相同名,你只要Select   教师姓名   from   L_JB   where   教师姓名=:xingming  
  然后通过   query.RecordCount>0(不稳定)     或者   query.IsEmpty=true     或者   if   (query.bof=query.eof)   then   //none!   else     //有记录

同意maozefa(阿发伯)  
  建议多使用with   写的代码又快又好看



[新闻]硅谷VC过冬:屯现金 广节流 慎投资
博客园首页 社区 新闻频道 小组 博问 网摘 闪存
阅读(333) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~