热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

請問DELPHI7的某欄位為NULL

我要檢查DBGRID1的Columns[4]值,是不是輸入O或是為NULL如果不是O或不是NULL就請跳出視窗告知程式碼如下IF(DBGRID1.Columns[4]<
我要檢查DBGRID1的Columns[4]值,是不是輸入"O"或是為NULL
如果不是"O"或不是NULL就請跳出視窗告知
程式碼如下

IF (DBGRID1.Columns[4] <> 'O' OR  DBGRID1.Columns[4] IS NIL) THEN
  BEGIN
      MessageDlg('是否輸入O以外字',mtWarning,[mbok],0);
      abort;
  END;

可是他會出現"Operator not applicable to this operand type"這個錯誤訊息
出錯點在"DBGRID1.Columns[4] IS NIL"這裡,請問該怎麼判斷他是否為空值

或是怎麼在Columns[4]屬性質的地方設定他就只能是空值或O,其他符號不可以輸入

10 个解决方案

#1


你直接判斷它的單元格是否為空就可以了。。。
 

if adoq.fieldbyname('aa').isnull then

#2


Columns[4]返回的 列索引,他包含很多的单元格,你至少也需要指定那个cell吧

#3


如果你DataSet用的 ADOQuery
建议你这样做
IF ((ADOQuery1.FieldByName('字段名').AsString <> '0') OR ADOQuery1.FieldByName('字段名').IsNull) THEN

指定是当前行

#4


謝謝大家提供意見...

Dear kye_jufei:
謝謝幫忙,他預設是空值,"判斷為空就好"不可以防呆呀@@
對不起
可能我說的不是很清楚

DBGRID1.Columns[4],我是從資料庫拉資料出來,要讓user修改
但輸入前希望可以判斷他只能輸入"O"跟"空值"

或是要怎麼樣讓DBGRID1.Columns[4]這個地方只能輸入"O"或是"空值"其他KEY

#5


楼主语法本身就有错。。

1、判断nil不能用is,is是判断类的。用assigned或者直接用等号
2、or前后两部分如果是表达式的华,要加括号,不然编译不过

#6


至于判断null的话,也不是用nil,参看楼上各楼

#7


那就直接在数据集的beforepost事件中判断当前字段的值就好了

#8


引用 7 楼 bdmh 的回复:
那就直接在数据集的beforepost事件中判断当前字段的值就好了

同意用此方法
还有 你要求的是
如果不是"O"或不是NULL就請跳出視窗告知
这里不应该用or 而是用and  
在beforepost事件中进行如下判断
IF ((ADOQuery1.FieldByName('dwdm').AsString <> '0') and (ADOQuery1.FieldByName('dwdm').AsString<>'')) THEN

#9


方法很多種,在ado的beforepost事件中也可以:

IF ((ADOQuery1.FieldByName('dwdm').AsString <> '0') and (ADOQuery1.FieldByName('dwdm').AsString<>'')) 

#10


贊同~贊同~~感激不靜...
耶耶~~!!

推荐阅读
author-avatar
手机用户2502937527
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有