有关null问题,急!!!(200分)

  • 主题发起人 主题发起人 wzw
  • 开始时间 开始时间
W

wzw

Unregistered / Unconfirmed
GUEST, unregistred user!
我这样写:
if (str<>'') or (str<>NUll) then
出如下错误:
[Error] common.pas(466): Undeclared identifier: 'Null'
改为这样:
if (str<>'') or (not str.isNUll) then
出如下错误:
[Error] common.pas(689): Record, object or class type required
到底该怎样写??请高手回答!!!我给200分!!
 
我在D5下没有问题!!!

if (Str<>'') or (Str<>null) then

(或者你添加 : uses System;)
 
在DELPHI中
应该是
if (Str<>'') or (Str<>NIL) then
...
NULL在DELPHI中好象是不认的
 
Delphi里面不区分大小写呀.Null函数是在Variants单元中.
你也可以试试nil,那是判断指针的.
 
好像只有对象才能和null相比较,如一个空的对象就是null,
 
if trim(str)<>''then
 
我分析,在D5中认null,在D6中对null有特殊写法,不知该怎样写???
 
我认为对于生存期自管理类型string来说,str<>null这样的比较没有什么意义。
pchar才有实际意义。

 
你的 STR 是什么类型?
如果是 STRING ,那么: if Trim(Str) <> '' then
如果是 TFIELD ,那么: if not Str.IsNull then
 
null在system中定义为Variant,而不是我们通常认为的空指针。''对于字符串来说
就是空指针,不信可以跟踪一下汇编码。所以写成if str<>'',就是判断str是否
空指针,不需再加上Str<>null。
 
我的也是NULL在D5中认,D6中死活不认
 
D5升级到D6的变化,加下面的代码:
use Variants
 
在Delphi6中,应为 if (Trim(Str)<>'') or (Str<>NIL) then 、、、
 
null在D4下都认了啊,
uses system
var Null: Variant;
函数isnull是判断数据库字段的,
 
NULL在DELPHI中是不认的.用Nil吧~~~~
 
if Table1['姓名'] = null then; //可以这样调用
if Table1['姓名'] = '' then; //也可以这样调用,但是结果不同
 
我在D5下可以用呀!
 
D5中能用,问题是在D6中不能用!!!!
改成 if (str<>'') or (str<>Nil) then变成如下错误:
[Error] common.pas(689): Incompatible types: 'String' and 'Pointer'
 
str 是string的,不知引用var null:variant;行否??在哪里引用??
 
我想大概在D6中不能用<>null之类的语句,可能zhihuali的对,用<>''或not isnull
 
后退
顶部